Imagine У меня есть класс C++ Foo и класс Bar, который должен быть создан с помощью конструктора, в котором передается указатель Foo, и этот указатель должен оставаться неизменным в жизненном цикле экземпляра Bar. Каков правильный способ сделать это?Как инициализировать поле const в конструкторе?
На самом деле, я думал, что я мог бы написать, как приведенный ниже код, но он не компилируется ..
class Foo;
class Bar {
public:
Foo * const foo;
Bar(Foo* foo) {
this->foo = foo;
}
};
class Foo {
public:
int a;
};
Любое предложение можно только приветствовать.
+1, хотя я недавно узнал здесь, что переменные начиная с underscore теперь * официально * зарезервировано ;-) –
Только если за ними следует заглавная буква. – GManNickG
или находятся в пространстве имен! Или за ним следует другое подчеркивание. Так что да, это технически законно в этом случае, но я бы сказал, что легче просто притвориться, что они защищены, а не использовать их вообще. :) – jalf