首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class TestClass { public: TestClass(){cout
有如下程序: #include using namespace std; class TestClass { public: TestClass(){cout
admin
2012-12-29
39
问题
有如下程序:
#include
using namespace std;
class TestClass
{
public:
TestClass(){cout<<“default constructorkn”;}
TestClass(const TestClass&x){cout<<“copy constructor\n”;}
};
TestClass userCode(TestClass b){TestClass c(b);return c;}
int main()
{
TestClass a,d;
cout<<“calling userCode()\n”;
d=userCode(a);
return 0:
}
在执行过程中,构造函数TestClass()和TestClass(constTestClass &x)被调用的次数分别是( )。
选项
A、1和1
B、1和2
C、2和3
D、2和4
答案
C
解析
在主函数中定义了两个TestClass类型的变量a,d,因此执行两次构造函数TestClass ()。接下来执行d=userCode(a);,在执行该函数时,由于userCode采用了传值方式来传递参数,所以要调用一次TestClass(const TestClass &x)。在函数userCode内部TestClass c(b);语句又调用了一次拷贝构造函数,由于函数userCode返回的不是引用,而是一个TestClass变量,所以还需要执行一次拷贝构造函数,所以一共要执行两次普通构造函数(非拷贝构造函数)与三次拷贝构造函数。
转载请注明原文地址:https://kaotiyun.com/show/MuVp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有以下程序:main(){intn=0;do{n++;printf(’’%d\n’’,n);}while(n<=3);}程序的输出结果是()。
若有以下程序#include<stdio.h>main(){intb=10,a=-11;a%=b%=4;printf("%d%d\n",a,b);}则程序的
有以下程序段:#include<stdio.h>inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);程序运行后的输出结果是()。
C源程序中不能表示的数制是()。
C语言编译程序的功能是()。
随机试题
社会主义从一国到数国的发展有何历史贡献和教训?
()称为婴儿发展评价。
相邻土地一方擅自堵截独占自然流水,影响他方正常生产、生活时,他方有权请求()。A.停止侵害B.恢复名誉C.排除妨碍D.消除危险
A、排泄性尿路造影B、经肾盂造瘘管造影C、膀胱造影D、尿道造影E、尿路逆行造影以上哪种造影应使用有机碘造影剂
下列哪项不是幽门完全性梗阻的突出表现
一般情况,选择性催化还原法比非选择性催化还原法的排烟脱氮处理成本( )。
在个人人寿保险中,允许变更被保险人。()
简述技能的基本特征。
材质各异
【B1】【B10】
最新回复
(
0
)