【对象程序设计面向】虚继承
生活随笔
收集整理的這篇文章主要介紹了
【对象程序设计面向】虚继承
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
B?C虛繼承A,D?public繼承?B?C?,有A?*a?=?new?D,a->fun(),fun是虛函數,并且B?C都重寫了,怎么保證a調用的是B重寫的虛函數。
#include <iostream> using namespace std;class A { public:virtual void fun() { cout << "A::fun()." << endl; } };class B :public virtual A { public:void fun() { cout << "B::fun()." << endl; } };class C :public virtual A { public:void fun() { cout << "C::fun()." << endl; } };class D :public B, public C { public:void fun() { cout << "D::fun()." << endl; } };int main() {A* a = new D;(dynamic_cast<B*>(a))->B::fun();return 0; } // 輸出:B::fun().?
總結
以上是生活随笔為你收集整理的【对象程序设计面向】虚继承的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成都欢乐谷夜场几点到几点
- 下一篇: 沧海一粟剧情介绍