(“拷贝构造函数”)是一种特殊的构造函数。“拷贝构造函数”是一种名称;它有以下特点;
1、函数的名称必须和类名称一致。
2、它有唯一的一个参数,该参数是const类型,不可变的。
例如:类Cstudent的"拷贝构造函数"的形式为Cstudent(const Cstudent &x)。这个x是个任意符号,尊守变量命名原则;
下面用例子说明;
#include "stdafx.h"
#include <iostream>
using namespace std;
class Test
{
private:
int a, b;
public:
Test() {} // 定义无参数的构造函数
Test(int a, int b) {} // 定义带参数的构造函数
Test(const Test &mynew); //声明“拷贝构造函数”,在类外面定义;
public:
void init(int _a, int _b) //用来初始化的函数
{
a = _a;
b = _b;
}
void prt() //输出结果的输出函数;
{
cout<<a<<"and"<<b<<endl;
}
};
Test::Test(const Test &mynew) //定义“拷贝构造函数”mynew可以任何字符;
{
a=mynew.a; //过程,把旧的实体内容传给新的实体;
b=mynew.b;
}
int _tmain(int argc, _TCHAR* argv[])
{
Test a1; //定义新的类实体a1;
a1.init(4,5); //给a1内的元素赋值,按照顺序,4给啊a5给b;
Test a2 = a1; // 把 a1 元素的值拷贝给 a2
Test a3(a1); // 这样写也是把 a1 元素的值拷贝给 a3 ,两种方式都行;
a3.prt(); //输出a3的内容看看拷贝进去了吗?
return 0;
}