第十周项目一 阅读程序,写出程序运行的结果(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  :最后执行构造函数中的输出语句。

你可能感兴趣的:(第十周项目一 阅读程序,写出程序运行的结果(4))