C++ 多继承中的多义性
生活随笔
收集整理的這篇文章主要介紹了
C++ 多继承中的多义性
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
如果一個(gè)子類繼承多個(gè)基類,這多個(gè)基類都有一個(gè)相同的函數(shù),那么子類調(diào)用這個(gè)相同的函數(shù)就會產(chǎn)生多義性,編譯就不能通過:
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; }解決方法可以是在子類中重寫這個(gè)函數(shù),這樣就會調(diào)用子類的函數(shù),不會產(chǎn)生多義
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; }?
總結(jié)
以上是生活随笔為你收集整理的C++ 多继承中的多义性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机英语一级考试试题,全国计算机一级考
- 下一篇: c++ map 获取key列表_好未来G