- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C第的5章继承与派生
C++习题与解析-继承和派生
5.1.1 继承与派生
5.1.2 派生类的定义
5.1.3 类的继承方式
5.1.4 派生类的构造函数和析构函数
5.1.5 派生类对基类成员的继承
1 分析以下程序的执行结果 知识点:继承与派生,构造函数和析构函数调用书序。
#includeiostream.h
class base
{
public:
base(){coutconstructing base classendl;}
~base(){coutdestructing base classendl; }
};
class subs:public base
{
public:
subs(){coutconstructing sub classendl;}
~subs(){coutdestructing sub classendl;}
};
void main()
{
subs s;
}
解:
本题说明单继续情况下构造函数和析构函数的调用顺序。这里base 为基类,subs
为派生类。
所以输出为:
constructing base class
constructing sub class
destructing sub class
destrcuting base class
注重:在单继续情况下,首先调用基类的构造函数 ,随后调用派生类的构造函数,析
构函数的调用顺序则正好相反。
2 分析以下程序的执行结果:知识点:继承与派生,构造函数和析构函数调用书序。
#includeiostream.h
class base
{ int n;
public:
base(int a)
{
coutconstructing base classendl;
n=a;
coutn=nendl;
}
~base(){coutdestructing base classendl;}
};
class subs:public base
{ base bobj;
int m;
public:
subs(int a,int b,int c):base(a),bobj(c)
{
coutconstructing sub cassendl;
m=b;
coutm=mendl;
}
~subs(){coutdestructing sub classendl;}
};
int main(int argc, char* argv[])
{
printf(Hello World!\n);
subs s(1,2,3);
return 0;
}
解:
本题说明 派生类中含有对象成员情况下构造函数和析构函数的调用顺序。这里b
ase 为基类,subs 为派生类,subs 类的构造函数中含有对象成员。
所以输出为:
constrcuting base class
n=1
constructing base class
n=3
constructing sub class
m=2
destructing sub class
destructing base class
destructing ba
文档评论(0)