C++拷贝构造函数的触发时机
在C++编程中,拷贝构造函数是一个非常重要的概念。在定义一个类的时候,我们通常需要考虑如何拷贝对象以及如何传递对象。这就需要了解拷贝构造函数的调用时机。
首先,拷贝构造函数是用于创建一个新对象,其内容与另一个已存在对象相同。当我们使用一个对象去初始化另一个对象时,拷贝构造函数就会被调用。下面来看一些代码例子:
#include<iostream>
using namespace std;
class Student{
public:
int age;
char *name;
Student(int _age, char *_name):age(_age){
name = new char[strlen(_name)+1];
strcpy(name, _name);
}
// 拷贝构造函数
Student(const Student &stu){
age = stu.age;
name = new char[strlen(stu.name)+1];
strcpy(name, stu.name);
}
~Student(){
delete []name; // 析构函数
}
};
int main(){
Student stu1(18,"小明");
Student stu2 = stu1; //