Problem jest taki. mamy funkcję
bool Sprawdz(Kolekcja &d);
Kolekcja gromadzi wskaźniki do obiektów kilku klas : Dane1, Dane2, Dane3 itd., do około 20; przy czym wszystkie one pochodzą od klasy bazowej Baza. Użytkownikowi byłoby wygodnie stosować na przykład taki zapis
if (Sprawdz( Dane3(...) << Dane6(...) << Dane1(...))) {
/*rób coś*/
}
Innymi słowy chodzi o zainicjowanie kolekcji przekazywanej do funkcji obiektami o wspólnym interfejsie w miejscu jej użycia (*). Obiekty w kolekcji mogą zniknąć po zakończeniu wywołania Sprawdź, to nie przeszkadza.
W przypadku mojego podejścia problem sprowadza się do właściwego przeciążenia operatorów <<. Najlepiej żeby były tylko dwa, coś w stylu:
Kolekcja operator<<(Baza , Baza); //definicje z dokładnością do wskaźnika/referencji
Kolekcja operator<<(Kolekcja, Baza);
Pierwszy żeby to wszystko zacząć, a drugi żeby dało radę wykonać kaskadę.
Jak widać strasznie mącę, żeby wypowiedzieć się o co chodzi. Proszę brak trywialnych odpowiedzi w stylu "sam se dojdź", bo sam sobie dochodzę od kilku godzin. Interesują mnie za to zupełnie inne rozwiązania problemu (*) niż ta moja karma z operatorami << i w tym miejscu uwaga - jeszcze wcześniej kilka godzin poświęciłem na rozważanie rozwiązania opierającego się o va_list, tego też już nie chcę :).
pozdro 600