第十周项目一 阅读程序,写出程序运行的结果(4)

/*copyright(c)2016.烟台大学计算机学院
 * All rights reserved,
 * 文件名称:text.Cpp
 * 作者:舒文超
 * 完成日期:2016年4月30日
 * 版本号:vc++6.0
 * 问题描述:阅读程序写出程序运行的结果
 */
#include<iostream>
using namespace std;
class Base
{
public:
    Base(char i)
    {
        cout<<"Base constructor.--"<<i<<endl;
    }
};
class Derived1:virtual public Base
{
public:
    Derived1(char i,char j):Base(i)
    {
        cout<<"Derived constructor.--"<<j<<endl;
    }
};
class Derived2:virtual public Base
{
public:
    Derived2(char i,char j):Base(i)
    {
        cout<<"Derived2 constructor.--"<<j<<endl;
    }
};
class MyDerived:public Derived1,public Derived2
{
public:
    MyDerived(char i,char j,char k,char l,char m,char n,char x):
    Derived2(i,j),Derived1(k,l),Base(m),d(n)
    {
        cout<<"MyDerived constructor.--"<<x<<endl;
    }
private:
    Base d;
};
int main()
{
    MyDerived obj('A','B','C','D','E','F','G');
    return 0;
}

运行结果:

                Base constructor.--E    :因为Base是一个虚基类,所以初始化只进行一次,也就是只执行了第三个。
                Derived1 constructor.--D  :对derived1进行初始化,输出语句。
                Derived2 constructor.--B  :对derived2进行初始化,输出语句。
                Base constructor.--F  :对MyDerived中的Base数据成员进行初始化,输出语句。
                MyDerived constructor.--G  :最后执行构造函数中的输出语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值