#include <iostream> /* 复制构造函数是C++中的一种特殊的函数,同构造函数一样对对象进行处理。 在数值的传递中时,他对对象进行复制操作,将原来对象中的数值进行拷贝 它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。 其唯一的参数(对象的引用)是不可变的(const类型)。 此函数经常用在函数调用时用户定义类型的值传递及返回。 拷贝构造函数要调用基类的拷贝构造函数和成员函数。 如果可以的话,它将用常量方式调用,另外,也可以用非常量方式调用。 */ using namespace std; class A { public: A(int i,int j) { cout << "执行构造函数!" <<endl; m = i; n = j; } A(A&one) //此处的复制构造函数就是系统默认的复制构造函数实现的机理,()中的A&表示这是一个引用,通过引用可以找到待拷贝的对象的数据 { cout << "执行复制构造函数!" <<endl; n = one.n; m = one.m; } ~A() { cout << "执行析构函数!" <<endl; } void print() { cout << m << " " << n; } private: int m; int n; }; int main (void) { A a(2,4); a.print(); cout << endl; A b(a); //需要使用复制构造函数进行a对象的拷贝,复制构造函数也有构造函数的功能 b.print(); return 0; }
执行的结果如下:
可以发现,在执行完复制构造函数之后没有执行构造函数,这说明复制构造函数也有构造函数的功能,这也就是他为什么叫复制构造函数!
作者:Baniel01 发表于2013-8-29 18:50:10 原文链接
阅读:57 评论:0 查看评论