#include<iostream> using namespace std; class BC { public: BC(int n=100){val=n;cout<<"defult con"<<endl;} BC(BC& t){val=t.val;cout<<"Copy con"<<endl;} BC& operator=(BC& t) { val=t.val; cout<<"Assignment"<<endl; return *this; } private: int val; }; void f(BC t){} int main() { BC t1(3); BC t2; t2=t1; f(t2); return 0; }结果
时间: 2024-03-23 08:37:01 浏览: 63
使用include <iostream>时一定要加using namespace std
输出结果为:
```
defult con
defult con
Assignment
Copy con
```
解释如下:
1. 首先创建一个 BC 对象 t1,使用构造函数 `BC(int n=100)` 初始化,输出 "defult con";
2. 创建另一个 BC 对象 t2,同样使用构造函数 `BC(int n=100)` 初始化,输出 "defult con";
3. 将 t1 赋值给 t2,调用赋值运算符函数 `operator=(BC& t)`,输出 "Assignment";
4. 将 t2 作为参数传递给函数 f,此时会调用拷贝构造函数 `BC(BC& t)`,输出 "Copy con"。
因此,最终的输出结果为上述四行。
阅读全文