objekt , sichbarkeit
-
Klasse objekt; if(a == b) { objekt(para1,para2); } else{ objekt(para1,para2); }was mit dem objekt machen...
in java habe ich immer new benutzt um das objekt zu initialisieren, ich könnte
in c++ auch new benutzen und auf das objekt zeigen, will ich aber nichtgibt es da also eine andere möglichkeit das objekt noch da ist wenn es den sichbarkeitsbereich verlassen hat?
-
mir fällt gerade nur was an bashar angelehntes ein.
object makeA(){ return object(p1,p2); } object makeB(){ return object(p3,p4); } ... object o(a==b?makea:makeb)());oder die parameter einzeln mit ?: auswählen.
object o(a==b?p1:p3,a==b?p2,p4);ich erinnere mich dran, daß ich dein problem früher auch hatte und keine zufriedenstellende lösung fand. aber das problem verwand dann irgendwann von allein. vielleicht kann das problem nur in zu großen funktionen auftauchen.
-
Der Konstruktor wird nur aufgerufen, wenn du das Objekt anlegst (in deinem Beispiel der Default-Ctor). Bei deinen Aufrufen
objekt(p1,p2);sucht der Compiler nach einem operator(), den er aufrufen könnte. Aber du kannst einem fertig erzeugten Objekt einen neuen Wert zuweisen:Klasse objekt; if(a == b) { objekt=Klasse(para1,para2); } ...