注册 登录
编程论坛 C++教室

[求助]实在不好意思,请达人帮忙看看错在哪里。

27149 发布于 2007-02-25 17:04, 458 次点击
#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;
}
5 回复
#2
deng19872007-02-26 21:20
virtual public base,不是virtual base
#3
xiayuid2007-02-27 11:45
a是保护的,应该是virtual protect base
#4
xiayuid2007-02-27 11:52

你这程序本身没意义的,受保护继承方法是不能在类外使用的

#5
271492007-03-01 17:49
按照二楼的改法就通过编译了
#6
song42007-03-02 14:58
public 继承不改变基类的protected
基类的protect的成员在子类中仍然是protected
可以调用
你可以看看书
1