Frage zu Warnung C4355
-
Ich hab mal ne Frage zu der Warnung.
Ich habe eine Konstruktion nach folgendem Vorbild:
class A { public: int i; }; class B { public: A *a; B(A *_a) :a(_a) { a->i; }; }; class C:public A,public B { public: C() :A(),B(this) {}; };Hier gibt es ja eine Warnung wegen this in Initialisierungsliste. Ich habe die Konstruktion schon getestet und sie Funktioniert da ich ja nur auf A zugreife das ja schon Konstruiert ist. Meine Frage dazu ist kann ich so eine Konstruktion Bedenkenlos benutzen, oder gibt es da evtl noch Nebeneffekte?
-
problemlos, würde ich denken.
kritisch ist folgendes:class Window{ virtual void show();//rahmen malen und hintergrund weiß machen Window(){ registerWindow(this);//in globale liste ientragen und anzeigen } }; class Button:public Window{ string text; void show();//Window::show aufrufen und Knopftext anzeigen }; void registerWindow(Window* w){ theWindows.push_back(w); w->show();//AUA AUA AUA, der Knopftext ist nicht da }