1:首先参看代码:
#include "stdafx.h" #include "iostream" using namespace std; class A { private: int value; public: A(int n) { value=n; } //A(A other)!!这是错误的 // 复制构造函数参数为类对象本身的引用,用于根据一个已存在的对象复制出一个新的该类的对象,一般在函数中会将已存在对象的数据成员的值复制一份到新创建的对象中 // 若没有显示的写复制构造函数,则系统会默认创建一个复制构造函数,但当类中有指针成员时,由系统默认创建该复制构造函数会存在风险 A(const A& other)//定义自己的复制构造函数都是如此格式 { value=other.value; } void Print() { std::cout<<value<<std::endl; } }; int main(int argc, char* argv[]) { A a=10; A b=a; b.Print(); return 0; }