#include<iostream>
using namespace std;
class A {
int k;
int *ptr;
public:
A(int a):k(a) {
cout<<"ctor\n";
ptr = new int[k];
for(int i = 0; i < k; i++) {
*(ptr + i) = i*i*i;
}
}
A(const A &obj) {
cout<<"copy ctor\n";
k == obj.k;
ptr = new int[k];
for(int i = 0; i < k; i++) {
*(ptr + i) = i*i;
}
}
void show() {
for(int i = 0; i < k; i++) {
cout<<*ptr++<<" ";
}
}
};
A foo() {
A temp(5);
return temp;
}
int main() {
A obj = foo();
obj.show();
return 0;
}
** foo() 返回的临时对象不会被复制。在 this 中调用普通构造函数,但不调用复制构造函数。谁能指出我到底哪里出错了。**