欢迎来到天天文库
浏览记录
ID:51468
大小:59.00 KB
页数:10页
时间:2017-04-27
《C++面向对象课后练习答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、类与对象习题程序阅读题1.分析以下程序执行的结果#include#includeclassSample{public:intx,y;Sample(){x=y=0;}Sample(inta,intb){x=a;y=b;}voiddisp(){cout<<"x="<2、)中定义了它的一个对象,定义s1对象时调用其重载构造函数(x=2,y=3),然后,调用其成员函数输出数据成员。所以输出为:x=2,y=3。注意:构造函数是唯一不能被显式调用的成员函数,它在定义类的对象时自动调用,也称为隐式调用。--------------------------------------------------------题2.分析以下程序的执行结果#includeclassSample{intx,y;public:Sample(){x=y=0;}Sample3、(inta,intb){x=a;y=b;}~Sample(){if(x==y)cout<<"x=y"<4、成员,最后在退出程序时自动调用析构函数。所以输出为:x=2,y=3x!=y注意:析构函数在对象的作用域结束时被自动隐式调用。----------------------------------------------------题3.分析以下程序的输出结果#includeclassSample{intx;public:Sample(inta){x=a;cout<<"constructingobject:x="<5、Sampleobj(n);}voidmain(){func(1);func(10);}分析:本题说明静态对象构造函数的调用情况,由于在func()函数中定义的对象obj是静态对象,故只被构造一次,所以输出为:counstructingobject:x=1注意:静态对象和静态变量一样,只被构造一次。块作用域的静态变量,在首次进入到定义该静态对象的函数时,构造该静态对象,以后进入该函数时不再构造静态对象。--------------------------------------------------6、----题4分析以下程序的执行结果#includeclassSample{intx,y;public:Sample(){x=y=0;}Sample(inta,intb){x=a;y=b;}voiddisp(){cout<<"x="<disp();}分析:本题说明了对象指针的使用方法。这里通过指向对象的指针来调用对象的成员函数。对象指针p指向对象s,p->disp()等7、价于s.disp()。所以输出为:x=2,y=3题5分析以下程序的执行结果#includeclassSample{public:intx;inty;voiddisp(){cout<<"x="<8、c是一个指向Sample类数据成员的指针。执行pc=&Sample::x时,pc指向数据成员x,语句s.*pc=10等价于s.x=10(为了保证该语句正确执行,Sample类中的x必须是公共成员);执行pc=&Sample::y时,pc指向数据成员y,语句s.*pc=20等价于s.y=20(同样,Sample类中的y必须是公共成员)。所以输出为:x=10,y=20。----------------------------------------------------
2、)中定义了它的一个对象,定义s1对象时调用其重载构造函数(x=2,y=3),然后,调用其成员函数输出数据成员。所以输出为:x=2,y=3。注意:构造函数是唯一不能被显式调用的成员函数,它在定义类的对象时自动调用,也称为隐式调用。--------------------------------------------------------题2.分析以下程序的执行结果#includeclassSample{intx,y;public:Sample(){x=y=0;}Sample
3、(inta,intb){x=a;y=b;}~Sample(){if(x==y)cout<<"x=y"<4、成员,最后在退出程序时自动调用析构函数。所以输出为:x=2,y=3x!=y注意:析构函数在对象的作用域结束时被自动隐式调用。----------------------------------------------------题3.分析以下程序的输出结果#includeclassSample{intx;public:Sample(inta){x=a;cout<<"constructingobject:x="<5、Sampleobj(n);}voidmain(){func(1);func(10);}分析:本题说明静态对象构造函数的调用情况,由于在func()函数中定义的对象obj是静态对象,故只被构造一次,所以输出为:counstructingobject:x=1注意:静态对象和静态变量一样,只被构造一次。块作用域的静态变量,在首次进入到定义该静态对象的函数时,构造该静态对象,以后进入该函数时不再构造静态对象。--------------------------------------------------6、----题4分析以下程序的执行结果#includeclassSample{intx,y;public:Sample(){x=y=0;}Sample(inta,intb){x=a;y=b;}voiddisp(){cout<<"x="<disp();}分析:本题说明了对象指针的使用方法。这里通过指向对象的指针来调用对象的成员函数。对象指针p指向对象s,p->disp()等7、价于s.disp()。所以输出为:x=2,y=3题5分析以下程序的执行结果#includeclassSample{public:intx;inty;voiddisp(){cout<<"x="<8、c是一个指向Sample类数据成员的指针。执行pc=&Sample::x时,pc指向数据成员x,语句s.*pc=10等价于s.x=10(为了保证该语句正确执行,Sample类中的x必须是公共成员);执行pc=&Sample::y时,pc指向数据成员y,语句s.*pc=20等价于s.y=20(同样,Sample类中的y必须是公共成员)。所以输出为:x=10,y=20。----------------------------------------------------
4、成员,最后在退出程序时自动调用析构函数。所以输出为:x=2,y=3x!=y注意:析构函数在对象的作用域结束时被自动隐式调用。----------------------------------------------------题3.分析以下程序的输出结果#includeclassSample{intx;public:Sample(inta){x=a;cout<<"constructingobject:x="<5、Sampleobj(n);}voidmain(){func(1);func(10);}分析:本题说明静态对象构造函数的调用情况,由于在func()函数中定义的对象obj是静态对象,故只被构造一次,所以输出为:counstructingobject:x=1注意:静态对象和静态变量一样,只被构造一次。块作用域的静态变量,在首次进入到定义该静态对象的函数时,构造该静态对象,以后进入该函数时不再构造静态对象。--------------------------------------------------6、----题4分析以下程序的执行结果#includeclassSample{intx,y;public:Sample(){x=y=0;}Sample(inta,intb){x=a;y=b;}voiddisp(){cout<<"x="<disp();}分析:本题说明了对象指针的使用方法。这里通过指向对象的指针来调用对象的成员函数。对象指针p指向对象s,p->disp()等7、价于s.disp()。所以输出为:x=2,y=3题5分析以下程序的执行结果#includeclassSample{public:intx;inty;voiddisp(){cout<<"x="<8、c是一个指向Sample类数据成员的指针。执行pc=&Sample::x时,pc指向数据成员x,语句s.*pc=10等价于s.x=10(为了保证该语句正确执行,Sample类中的x必须是公共成员);执行pc=&Sample::y时,pc指向数据成员y,语句s.*pc=20等价于s.y=20(同样,Sample类中的y必须是公共成员)。所以输出为:x=10,y=20。----------------------------------------------------
5、Sampleobj(n);}voidmain(){func(1);func(10);}分析:本题说明静态对象构造函数的调用情况,由于在func()函数中定义的对象obj是静态对象,故只被构造一次,所以输出为:counstructingobject:x=1注意:静态对象和静态变量一样,只被构造一次。块作用域的静态变量,在首次进入到定义该静态对象的函数时,构造该静态对象,以后进入该函数时不再构造静态对象。--------------------------------------------------
6、----题4分析以下程序的执行结果#includeclassSample{intx,y;public:Sample(){x=y=0;}Sample(inta,intb){x=a;y=b;}voiddisp(){cout<<"x="<disp();}分析:本题说明了对象指针的使用方法。这里通过指向对象的指针来调用对象的成员函数。对象指针p指向对象s,p->disp()等
7、价于s.disp()。所以输出为:x=2,y=3题5分析以下程序的执行结果#includeclassSample{public:intx;inty;voiddisp(){cout<<"x="<8、c是一个指向Sample类数据成员的指针。执行pc=&Sample::x时,pc指向数据成员x,语句s.*pc=10等价于s.x=10(为了保证该语句正确执行,Sample类中的x必须是公共成员);执行pc=&Sample::y时,pc指向数据成员y,语句s.*pc=20等价于s.y=20(同样,Sample类中的y必须是公共成员)。所以输出为:x=10,y=20。----------------------------------------------------
8、c是一个指向Sample类数据成员的指针。执行pc=&Sample::x时,pc指向数据成员x,语句s.*pc=10等价于s.x=10(为了保证该语句正确执行,Sample类中的x必须是公共成员);执行pc=&Sample::y时,pc指向数据成员y,语句s.*pc=20等价于s.y=20(同样,Sample类中的y必须是公共成员)。所以输出为:x=10,y=20。----------------------------------------------------
此文档下载收益归作者所有