C++教程:C++拷贝构造函数

2020-01-06 12:16:55刘景俊
我们在程序中常常需要把一些数据复制一份出来备作它用。对于只有基本类型变量的程序来说,这是轻而易举就能做到的——新建一个临时变量,用一句赋值语句就能完成。但如果它是一个有着许许多多成员数据的对象,这就会非常麻烦。最要命的是,那些成员数据还是私有的,根本无法直接访问或修改。那么这时候,我们怎么“克隆”出一个和原来的对象相同的新对象呢?

拷贝构造函数

我们知道,构造函数是可以带上参数的,这些参数可以是整型、字符型等等,那么它可不可以是一个对象类型呢?我们把一个原来的对象丢给构造函数,然后让它给我们造一个相同的对象,是否可以呢?下面我们就来试试看:(程序15.4.1)
//node.h
#include <iostream>
using namespace std;
class Node//定义一个链表结点类
{
   public:
   Node();//构造函数的声明
   Node(int i,char c='0');//构造函数重载1
   Node(int i,char c,Node *p,Node *n);//构造函数重载2
   Node(Node &n);//结点拷贝构造函数,&表示引用
   int readi() const;//读取idata