下面程序为什么会编译错误,并改正错误(提出解决办法)。
下面程序为什么会编译错误,并改正错误(提出解决办法)。
class window
{
protected:
int basedata;
};
class border: public window
{ };
class menu: public window
{ };
class border_and_menu: public border,public menu
{
public:int show()
{
return basedata;
}答案
第1空:return basedata;//在border_and_menu中引用basedata时产生二义性,应使用虚基类
应改为:class border:virtual public window{ };class menu:virtual public window{ };