Я не понимаю, почему мой член не инициализирован. У меня есть что-то вроде этого:
class A
{
public:
A() {member = 0;}
int getMember() {return member;}
protected:
int member;
}
а также
class B : public A
{
public:
B() : A() {member = 10;}
}
Когда я пытаюсь получить значение член из B это всегда 0.
Что мне здесь не хватает?
Спасибо!
РЕДАКТИРОВАТЬ: Ctor сейчас публичный.
Я попробовал две вещи, и они обе дают ожидаемый результат:
class A
{
public:
A() {member = 0;}
int getMember() {return member;}
protected:
int member;
};
class B : public A
{
public:
B() : A() {member = 10;}
};
int main() {
A* a = new B();
cout << a->getMember() << endl;
B b;
cout << b.getMember() << endl;
return 0;
}
Это возвращает
output:
10
10
Вы можете проверить код на http://ideone.com/FArIAC
Других решений пока нет …