您的位置:首页 > 其它

第十周项目—阅读程序,写出执行结果(3)

2016-05-05 21:21 260 查看
/*
*Copyright(c) 2016.烟台大学计算机与控制工程学院
*ALL rights  reserved.
*文件名称:test.cpp
*作者:杨驰
*完成日期:2016年5月5日
*问题描述:阅读程序,写出执行结果
*/

#include <iostream>
using namespace std;
class A
{
public:
A(char *s){cout<<s<<endl;}
};
class B:public A
{
public:
B(char *s1, char *s2):A(s1){
cout<<s2<<endl;
}
};
class C:public A
{
public:
C(char *s1,char *s2):A(s1){
cout<<s2<<endl;
}
};
class D:public B, C
{
public:
D(char *s1,char *s2,char *s3,char *s4):
B(s1,s2),C(s3,s4){cout<<s4<<endl;}
};
int main()
{
D d("class A","class B","class C","class D");
return 0;
}

运行结果:



程序过程图:



过程分析:A是派生类B,C的基类,其继承类型为public。B,C是派生类D的基类,其继承类型为public。主函数中声明了一个派生类D

的对象,生成对象d时调用了派生类的构造函数,在执行派生类D的构造函数时,先调用基类B,C的构造函数。调用B构造

函数时,A是B的基类,所以先调用A中的构造函数,输出s是class A,接着输出B中的s2是class B。在调用C的构造函数

时,同理。

学习心得:在此程序中,参数比较多,而且重复使用同一变量名,在这样的情况下,我们可以采取贺老师比较提倡的方法 在纸上把

此程序的过程画出来,这样思路会比较清晰,利于分析问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: