cib*_*en1 4 c++ return copy-constructor assignment-operator
我运行此代码来试验复制构造函数和赋值运算符
class AClass {
private:
int a;
public:
AClass (int a_) : a(a_) {
cout << " constructor AClass(int) " << a << endl;
}
AClass(const AClass & x) : a(x.a) {
cout << " copy constructor AClass(const AClass &) " << a << endl;
}
AClass & operator=(const AClass & x) {
a = x.a;
cout << " AClass& operator=(const AClass &) " << a - endl;
return *this;
}
};
AClass g () {
AClass x(8);
return x;
}
int main () {
cout << " before AClass b = g() " << endl;
AClass b = g();
cout << " after" << endl;
cout << " before AClass c(g()) " << endl;
AClass c (g());
cout << " after" << endl;
}
Run Code Online (Sandbox Code Playgroud)
并发现return x;
为什么没有出现任何消息?
不应该调用复制构造函数或运算符吗?
这是输出:
before AClass b = g() constructor AClass(int) 8 after before AClass c(g()) constructor AClass(int) 8 after
| 归档时间: |
|
| 查看次数: |
205 次 |
| 最近记录: |