C++调用拷贝构造函数的情况举例
时间: 2023-09-15 09:18:38 浏览: 87
好的,以下是几个C++调用拷贝构造函数的情况的举例:
1. 作为函数参数传递时:
```
class MyClass {
public:
MyClass(const MyClass& obj) { // 拷贝构造函数
// do something
}
};
void func(MyClass obj) { // obj 作为参数传递时,会调用拷贝构造函数
// do something
}
int main() {
MyClass myObj;
func(myObj);
return 0;
}
```
2. 函数返回值为对象时:
```
class MyClass {
public:
MyClass(const MyClass& obj) { // 拷贝构造函数
// do something
}
};
MyClass func() { // 返回值为对象时,会调用拷贝构造函数
MyClass myObj;
return myObj;
}
int main() {
MyClass myObj = func();
return 0;
}
```
3. 对象进行赋值操作时:
```
class MyClass {
public:
MyClass(const MyClass& obj) { // 拷贝构造函数
// do something
}
};
int main() {
MyClass obj1;
MyClass obj2 = obj1; // obj2 被赋值时,会调用拷贝构造函数
return 0;
}
```
4. 初始化一个对象时:
```
class MyClass {
public:
MyClass(const MyClass& obj) { // 拷贝构造函数
// do something
}
};
int main() {
MyClass obj1;
MyClass obj2(obj1); // obj2 被初始化时,会调用拷贝构造函数
return 0;
}
```
阅读全文