1.拷贝构造函数是一个特殊构造函数,具有以下的一些特征:
- 不能被显示的调用,如果没有定义一个拷贝构造函数,编译系统会为我们合成一个(作用只是简单地复制类中每个数据成员)
- 名称和类本身的名称相同,没有返回类型(甚至 void 也不行 )
拷贝构造函数有一个指向类对象的引用作为形式参数(传统上被声明为 const )
最常见形式如下:
类名(const 类名 &对象) {
// 构造函数的主体
}
Line(const Line &obj); // 拷贝构造函数
2.实例&运行结果&分析
#include <iostream>
using namespace std;
class Line
{
public:
Line(int len); // 简单的构造函数
Line(const Line &obj); // 拷贝构造函数
~Line(); // 析构函数
int getLength(void);
private:
int *ptr;
};
// 成员函数定义,包括构造函数
Line::Line(int len)
{
// 为指针分配内存
ptr = new int;
*ptr = len;
cout << "调用构造函数 " << ptr << endl;
}
Line::Line(const Line &obj)
{