Mi piacerebbe sapere se questi sono praticamente la stessa cosa.Passare i riferimenti a un costruttore C++ e salvarli su tipi di riferimento o non di riferimento
class ExampleClass {
public:
ExampleClass(Object& newObj) : obj(newObj) {}
private:
Object obj;
}
class ExampleClass2 {
public:
ExampleClass2(Object& newObj) : objReference(newObj) {}
private:
Object& objReference;
}
Quindi questo non funziona con nessuna delle classi?
ExampleClass* getExampleObject() {
Object obj;
return new ExampleClass(obj);
}
ExampleClass2* getExample2Object() {
Object obj;
return new ExampleClass2(obj);
}
void main() {
ExampleClass* ec = getExampleObject();
ExampleClass2* ec2 = getExample2Object();
//Do something involving the member objects of ec and ec2
}
Così sono il membro oggetti non validi dopo che entrambi i metodi getExampleObject? Il costruttore di ExampleClass non salva una copia dell'oggetto a cui fa riferimento il suo costruttore?
il codice non viene compilato, poiché non è possibile assegnare i puntatori (restituiti da getExampleObject e getExample2Object) alle variabili non puntatore ec ed ec2. – SirDarius
Sì, mi dispiace, ho dimenticato il * s. – user1468729