C++零基础教程(拷贝构造函数)
发布人:shili8
发布时间:2025-03-05 13:03
阅读次数:0
**C++零基础教程**
**第5 章:拷贝构造函数**
在 C++ 中,拷贝构造函数是用于创建一个新对象的特殊成员函数。它的作用是将一个已有的对象复制到新的对象中。
###什么是拷贝构造函数?
拷贝构造函数是一个特殊的构造函数,它的名字与类名相同,但前面加上一个 `copy` 或 `clone` 等关键字(虽然这不是必须的)。它的作用是将一个已有的对象复制到新的对象中。
### 为什么需要拷贝构造函数?
在 C++ 中,对象的创建和销毁是一个非常重要的过程。然而,在某些情况下,我们可能需要创建一个新对象,而这个新对象与原来的对象有相同的属性和行为。这就是拷贝构造函数的作用。
### 拷贝构造函数的定义拷贝构造函数的定义如下:
cppclass_name(class_name& other) { // 构造函数体}
其中,`class_name` 是类名,`other` 是一个引用指向原来的对象。
###例子:Person 类假设我们有一个 `Person` 类,它有两个属性:`name` 和 `age`。我们想创建一个拷贝构造函数来复制一个已有的 `Person` 对象。
cppclass Person { public: string name; int age; // 构造函数 Person(string n, int a) : name(n), age(a) {} // 拷贝构造函数 Person(const Person& other) : name(other.name), age(other.age) {} };
在这个例子中,我们定义了一个 `Person` 类,它有两个属性:`name` 和 `age`。我们还定义了一个拷贝构造函数,用于复制一个已有的 `Person` 对象。
### 使用拷贝构造函数现在,我们可以使用拷贝构造函数来创建一个新对象。
cppint main() { Person p1("John",30); Person p2(p1); // 使用拷贝构造函数复制p1到p2 cout << "Name: " << p2.name << endl; cout << "Age: " << p2.age << endl; return0; }
在这个例子中,我们创建了一个 `Person` 对象 `p1`,然后使用拷贝构造函数复制它到另一个对象 `p2`。最后,我们输出 `p2` 的属性。
### 总结在本章中,我们学习了什么是拷贝构造函数,以及如何定义和使用它。在 C++ 中,拷贝构造函数是一个非常重要的概念,它允许我们创建一个新对象,而这个新对象与原来的对象有相同的属性和行为。