2

我不明白为什么我的成员没有初始化。我有这样的事情:

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 现在是公开的。

4

1 回答 1

3

我尝试了两件事,它们都给出了预期的结果:

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查看代码

于 2012-10-19T23:16:36.907 回答