网站建设的销售话术,品牌推广官,扬州做公司网站,局域网网站建设需要什么条件如果一个子类继承多个基类#xff0c;这多个基类都有一个相同的函数#xff0c;那么子类调用这个相同的函数就会产生多义性#xff0c;编译就不能通过#xff1a;
class base1{
public:virtual void fun1(){ cout 1 endl; }
};
class base2…如果一个子类继承多个基类这多个基类都有一个相同的函数那么子类调用这个相同的函数就会产生多义性编译就不能通过
class base1{
public:virtual void fun1(){ cout 1 endl; }
};
class base2{
public:virtual void fun1(){ cout 2 endl; }
};
class base3{
public:virtual void fun1(){ cout 3 endl; }
};class derive :public base1, public base2, public base3{
};int main(){derive a;a.fun1(); //fun1不明确return 0;
}
解决方法可以是在子类中重写这个函数这样就会调用子类的函数不会产生多义
class base1{
public:virtual void fun1(){ cout 1 endl; }
};
class base2{
public:virtual void fun1(){ cout 2 endl; }
};
class base3{
public:virtual void fun1(){ cout 3 endl; }
};class derive :public base1, public base2, public base3{
public:virtual void fun1(){ cout derive endl; }
};int main(){derive a;a.fun1();return 0;
}