C++ 虚继承

来源:互联网 发布:nike高仿淘宝 编辑:程序博客网 时间:2024/05/20 07:36

#include <cstdio>#include <string>#include <iostream>using namespace std;class Root {public:Root(){}virtual void v1(){cout<< "ROOT V1 is "<< endl;}virtual void v2(){cout<< "ROOT V2" << endl; }void over(){cout << "ROOT is show R_AGE is "<< r_age << endl;}protected:int r_age;};class TrunkA: virtual public Root{public:int t_age;TrunkA(){r_age = 1;}/*void v1(){cout << "TrunkA V1 " << endl;}*/void over(){cout<< "TrunkA is show  R_age is " << r_age << endl;}};class TrunkB: virtual public Root{public:TrunkB(){r_age = 2;}/*virtual void v1(){cout<<"TrnkB V1" << endl;}void v2(){cout<< "TrunkB V2 " << endl;}*/void over(){cout << "TrunkB is show R_age is "<< r_age << endl;}};class TrunkC : public Root{public:void over() {cout << "TRUNKC R_AGE is"<< r_age << endl;}};class Leaves :  public TrunkB,  public TrunkA, public TrunkC{public :void over(){cout<< "Leaves is show "<< endl;}};int main(){Leaves L1;//含2个 ROOT 对象 (TrunkA, TrunkB 为虚继承共用一个 ROOT, TrunkC 使用一个ROOT)// 共用的ROOT 的r_age 为 先声明的TrunkA设置的变量值,值为 1;L1.over();//L1.v1();//L1.v2();//Root r1 = (Root)L1; --- errorTrunkB  b = (TrunkB)L1;b.over();b.v1();Root rb = (Root)b; rb.over();TrunkA a = (TrunkA)L1;a.over();a.v1();a.v2();Root ra = (Root)a;ra.over();TrunkC c = (TrunkC)c;c.over();c.v1();c.v2();return 0;};



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 衣服上面滴上502怎么办 502胶水弄衣服上怎么办 裤子上粘了胶怎么办 胶水滴在衣服上怎么办 衣服上有502胶水怎么办 衣服上面粘了胶怎么办 衣服上的胶干了怎么办 凌晨4点到火车站怎么办 运管罚款没钱交怎么办 郑州地铁票没买怎么办 遇到吸毒者拦路威胁要钱怎么办 开车遇见拦路要钱的怎么办 高速上有人拦车怎么办 马路上有人拦车怎么办 苹果手机下截软件要钱怎么办 孩子在学校问同学要钱怎么办 在学校被同学要钱怎么办 把人家店砸了要怎么办 外汇出金不到账怎么办 把罚款单弄丢了怎么办 在12306买不到下铺怎么办有 地铁票买反了怎么办 香港买错特惠票怎么办 到达迪拜t3 后怎么办 海藻面膜调多了怎么办 被鸡爪子抓伤了怎么办 被鸡抓伤肿了怎么办 护士电子化没有激活码怎么办 窗帘盒螺丝掉了怎么办 窗帘的环扣掉了怎么办 门式起重吊装行车脱轨怎么办 在日本丢了东西怎么办 在日本钱包丢了怎么办 被起诉后没钱还怎么办 分期付款卖车打不起车款怎么办 地铁票买多了怎么办 工伤陪护费没有发票怎么办 工伤医疗费报销单位不盖章怎么办 家里的led灯坏了怎么办 吊顶led灯坏了怎么办 客厅空了一面墙怎么办