首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序: #include <iostream> using namespace std; class CSample { private: int i; public: CSample (
有以下程序: #include <iostream> using namespace std; class CSample { private: int i; public: CSample (
admin
2010-03-29
90
问题
有以下程序: #include <iostream> using namespace std; class CSample { private: int i; public: CSample ( ); CSample( int val ); void Display(); ~CSample (); }; CSample:: CSample () { cout << "C1"; i = 0; } CSample: :CSample( int val ) { cout<< "C2"; i = val; } void CSample: :Display() { cout<<i<<": "; } CSample:: ~CSample ( ) { cout << "D"; } int main ( ) { CSample a, b( 10 ); return 0; } 执行后的输出结果为( )。
选项
A、ClC2DD
B、DDC1C2
C、C2C1DD
D、C1DC2D
答案
1
解析
本题程序首先定义了类CSample,其内部成员为private类型数据成员int i和public类型成员函数,包括两个构造函数、一个析构函数和一个普通成员函数 void Display(),其成员函数的功能分别为:
①CSample::CSample():构造函数,输出构造函数的执行消息“C1”,并将数据成员i赋值为i=0:
②CSample::CSample(int val):重载构造函数,输出构造函数的执行消息“C2”,并将数据成员i赋值为i=val:
③void CSample::Display():成员函数,输出数据成员i的值;
④CSample::~CSample():析构函数,输出析构函数的执行消息,并输出数据成员值。在主函数中,程序分别采用两个构造函数,创建了类CSample的两个对象,一个利用不带参数的构造函数创建对象a,另一个利用带参数的构造函数创建对象b。根据上面的分析,可以得到a和b中数据成员i的值分别为0(不带参数情况)和10(所带参数值)。因此下面的两条输出语句分别输出“0”和“10”。
此外,由于系统在创建对象时会调用构造函数,在对象生命期结束时会调用析构函数,因此程序还会有相应的输出。由于构造函数的调用顺序与对象创建的先后顺序一致,因此程序应该首先输出两个构造函数的调用信息,即“C1”和“C2”。在主函数执行结束后,由于两个对象a和b的生命期已经结束,因此系统将调用析构函数收回系统资源。由于析构函数的调用顺序与构造函数完全相反,因此系统将首先调用对象b的析构函数,程序输出析构函数执行信息“D”;之后调用对象a的析构函数,程序输出析构函数执行信息“D”。
转载请注明原文地址:https://kaotiyun.com/show/J6jp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有以下程序:#include<stdio.h>main(){inti,k=0,a[10];for(i=0;i<10;i++)a[i]=i;for(i=0;i<4;i++)k+=a[i]+i;printf("%d\n",k);}程序运行后的
有以下程序#include<stdio.h>main(){charb[3][10];inti;for(i=0;i<2;i++)scanf("%s",b[i]);gets(b[2]);prin
有以下程序段:charname[20];intnum;scanf("name=%snum=%d",name,&num);当执行上述程序段,并从键盘输入:name=Lilinum=1001后,name的值为(
有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf("%d,%d,%d,%d、n",a,b,c,d);}程序输出()。
有以下程序#include<stdio.h>intm=12;intfun(intx,inty){staticintm=3;m=x*y-m;return(m);}main(){
下面说法正确的是()。
有以下定义语句,编译时会出现编译错误的是
若有定义:doublea=22;inti=0,k=18;则不符合C语言规定的赋值语句是
某完全二叉树共有256个节点,则该完全二叉树的深度为()。
以下关于逻辑运算符两侧运算对象的叙述中正确的是
随机试题
目前已建立或准备建立B2C模式的电子商务网站的企业大致可分为
在市场调查中,常需对某个专题进行全面、深入的了解,同时希望通过访问、交谈发现一些重要情况,要达到此目的,仅靠表面观察和一般的访谈是不可能达到的,这时就需要采用
WhyIstheNativeLanguageLearntSoWellHowdoesithappenthatchildrenlearntheirmothertonguesowell?Whenwecompar
简述我国经济建设过程中出现失误的主要原因。
恶性肿瘤异型性主要表现在
翁女士,28岁。近半年来月经周期缩短,每20天来潮一次,经期正常。妇科检查:子宫稍大,附件(-)。基础体温曲线为双相型,但上升极慢。本病例较好的治疗方法是()
散剂优点不包括
加减葳蕤汤的功用是
下列几种氧化物的水化物酸性最强的是( )。
Therearealotofgoodcamerasavailableattilemoment—mostofthesearemadeinJapanbuttherearealsogood【B1】______models
最新回复
(
0
)