2

メンバーが初期化されない理由がわかりません。私はこのようなものを持っています:

class A
{
  public:
    A() {member = 0;}
    int getMember() {return member;}
  protected:
    int member;
}

class B : public A
{
  public:
    B() : A() {member = 10;}
}

Bからmemberの値を取得しようとすると、常に0になります。ここで何が恋しいですか?

ありがとう!

編集:Ctorは現在公開されています。

4

1 に答える 1

3

私は2つのことを試しましたが、どちらも期待どおりの結果が得られました。

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 に答える