【发布时间】:2010-11-21 04:37:27
【问题描述】:
为什么我不能访问基类 A 的 B 类初始化列表中的成员?
class A
{
public:
explicit A(int a1):a(a1)
{
}
explicit A()
{
}
public:
int a;
public:
virtual int GetA()
{
return a;
}
};
class B : public A
{
public:
explicit B(int a1):a(a1) // wrong!, I have to write a = a1 in {}. or use A(a1)
{
}
int GetA()
{
return a+1;
}
};
class C : public A
{
public:
explicit C(int a1):a(a1)
{
}
int GetA()
{
return a-1;
}
};
【问题讨论】:
-
我已经更改了措辞,以便问题更加具体:您无法从初始化列表中访问 A 字段,而您确实可以从构造函数主体中访问它。
标签: c++ derived-class