Я не могу найти этот вопрос, который даже задают где-либо... так что это заставляет меня поверить, что я делаю что-то очень неправильно здесь...
Допустим, у меня есть базовый класс A с конструктором, который принимает параметр int. В моем производном классе B я хочу вызвать этот конструктор, но также инициализировать ссылку на член, переданную в конструкторе B. Как я могу это сделать? Я не могу найти синтаксис для добавления списка инициализации, если я вызываю конструктор базового класса. Это возможно?
Допустим, у меня есть:
Class Object
{
Object(){}
}
Class A
{
A(int number) : m_number(number){}
public:
int m_number;
}
Теперь, как мне инициализировать m_obj, если я хочу вызвать конструктор A не по умолчанию?
e.g.
Class B : Class A
{
B(int number, const Object& objRef) : A(number)
{
m_obj = objRef; //error, : must be initialized in constructor base/member
// initializer list...but I cannot access an initializer list!!
}
private:
const Object& m_obj;
}
как я уже сказал, мои намерения, вероятно, здесь неверны, но если они верны, я не могу найти примеры синтаксиса в Google.
полегче со мной...:)
m_obj
наconst Object&
, либо изменить свой конструктор, чтобы он принималObject&
вместоconst Object&
- person LihO   schedule 02.02.2013const
, вы должны сохранить ее как ссылкуconst
.private: Object& m_obj;
должно бытьprivate: const Object& m_obj;
. - person LihO   schedule 02.02.2013