[C++] Przekazanie stworzonego obiektu do klasy. Problem z konst. kopiującym i dziedziczeniem.
Ostatnio zmodyfikowano 2011-07-25 00:59
akwes Temat założony przez niniejszego użytkownika |
[C++] Przekazanie stworzonego obiektu do klasy. Problem z konst. kopiującym i dziedziczeniem. » 2011-07-25 00:10:14 Otóż problem jest logicznie złożony :P. Oto pewne uproszczone, teoretyczne klasy: class Abstrakcyjna { public: Abstrakcyjna() { }; virtual void Draw() { cout << "Cos tam rysuje!"; }; };
class Nowa : public Abstrakcyjna { public: int wazny_element; Nowa() { }; void Draw() { cout << "Rysuje nowa!"; }; };
class Stara : public Abstrakcyjna { public: int wazny_element; Stara() { }; void Draw() { cout << "Rysuje stara!"; }; };
No i sobie potem robię tak: Abstrakcyjna * obiekt = new Nowa(); obiekt->Draw();
I faktycznie zobaczymy Rysuje nowa!
Ale teraz mam klasę: class NowoStara { public: Abstrakcyjna obiekt; NowoStara( Abstrakcyjna * wsk ) { }; };
Jak wykonać ten konstruktor? Abstrakcyjna obiekt = Abstrakcyjna( wsk );
Stworzy obiekt, który będzie pisał Cos tam rysuje! Co zrobić aby konstruktor wiedział jaką klasę ma stworzyć? Raz będę przesyłał obiekt Nowa a raz obiekt Stara, nie mogę mu powiedzieć dokładnie które z nich to będzie. |
|
malan |
» 2011-07-25 00:53:32 Napisz mu to po prostu. class NowoStara { public: Abstrakcyjna obiekt; NowoStara( Type * object ) { } }; |
|
akwes Temat założony przez niniejszego użytkownika |
» 2011-07-25 00:59:11 Mam to teraz zrobione na if-fach :P I tak mu to tłumaczę :P tylko brzydko wygląda mi parametr dodatkowy, którego sądzę że mogłoby nie być :P Chyba że da się jakoś sprawdzić typ danej i zrobić if w stylu ? Hm.. TypeID z typeinfo ? Tak. Nawet zwraca cstring "class nazwa" :) Da rade zarobić na tym. |
|
« 1 » |