Immaginate di avere una classe C++ Foo e una classe Bar che deve essere creata con un costruttore in cui viene passato un puntatore Foo e questo puntatore è destinato a rimanere immutabile nel ciclo di vita dell'istanza Bar. Qual è il modo corretto di farlo?Come inizializzare un campo const nel costruttore?
In realtà, ho pensato che avrei potuto scrivere come il codice qui sotto, ma non viene compilato correttamente ..
class Foo;
class Bar {
public:
Foo * const foo;
Bar(Foo* foo) {
this->foo = foo;
}
};
class Foo {
public:
int a;
};
Ogni suggerimento è benvenuto.
+1, anche se recentemente ho imparato qui che le variabili iniziando con underscore ora * ufficialmente * riservato ;-) –
Solo se sono seguiti da una lettera maiuscola. – GManNickG
o si trovano nello spazio dei nomi! O sono seguiti da un altro trattino basso. Quindi sì, è tecnicamente legale in questo caso, ma direi che è più facile fingere di essere riservati e non usarli affatto. :) – jalf