新微赢技术网

标题: [求助]实在不好意思,请达人帮忙看看错在哪里。 [打印本页]

作者: 逍遥的雨夜    时间: 2009-11-4 02:21
标题: [求助]实在不好意思,请达人帮忙看看错在哪里。
#include <iostream.h>
class base {
protected:
int a;
public:
base( )
{ a=5; cout<<"base a="<<a<<endl; }
};
class base1:virtual base {
public: base1( )
{ a=a+10; cout<<"base1 a="<<a<<endl; }
};
class base2:virtual base {
public: base2( )
{ a=a+20; cout<<"base2 a="<<a<<endl; }
};
class derived :public base1,public base2 {
public:
derived( )
{ cout<<"derived中a="<<a<<endl;
}
};
void main( )
{
derived obj;
作者: 城市之肺    时间: 2009-11-4 02:21
virtual public base,不是virtual base
作者: 云飞    时间: 2009-11-4 02:21
a是保护的,应该是virtual protect base
作者: 水中de云    时间: 2009-11-4 02:21
你这程序本身没意义的,受保护继承方法是不能在类外使用的
作者: ︷起↘嚸℡    时间: 2009-11-4 02:21
按照二楼的改法就通过编译了
作者: 逍遥◆爱你    时间: 2009-11-4 02:21
public 继承不改变基类的protected
基类的protect的成员在子类中仍然是protected
可以调用
你可以看看书




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2