看以下两个类:
class A
{
public:
A(){ provalue = 0;}
protected:
int proValue;
};
class B: public A
{
public:
B();
};
B::B()
:proValue(0)
{
}
以上代码在编译时会提示proValue不属于B类的成员,可是如果取消B类构造函数的初始化列表,而在其构造函数中对proValue进行赋值,则编译通过。Why?
看以下两个类:
class A
{
public:
A(){ provalue = 0;}
protected:
int proValue;
};
class B: public A
{
public:
B();
};
B::B()
:proValue(0)
{
}
以上代码在编译时会提示proValue不属于B类的成员,可是如果取消B类构造函数的初始化列表,而在其构造函数中对proValue进行赋值,则编译通过。Why?