一个c++关于拷贝构造函数被调用次数的问题

2025-04-10 22:42:27
推荐回答(3个)
回答1:

Myclass obj3(obj1); //直接调用拷贝构造函数
obj2=fun(obj3);//调用三次,第一次是参数按值传递,使用拷贝构造函数创建了一个临时对象。第二次是函数内部使用拷贝构造函数初始化局部对象temp,第三次是按值返回需要用拷贝构造函数创建临时对象。

回答2:

很简单,程序改为:
Myclass(int n){number=n;cout<<"构造函数被调用"< Myclass(Myclass &other) {number=other.number;cout<<"拷贝构造函数被调用"< ~Myclass(){cout<<"析构函数被调用"<
构造 2次
拷贝构造 4次
析构 6次

回答3:

拷贝构造函数调用次数
Myclass obj3(obj1); //1
Myclass fun(Myclass p) //2
Myclass temp(p);//3
return temp;//4

这2个是普通构造函数
Myclass obj1(10),obj2(0);