手把手教你c++复制构造函数

2025-10-10 07:56:53

1、鼠标双击或者右击打开桌面上DEVc++软件,让其运行起来。Dev-C++是一个电脑Windows窗口运行环境下的一款非常适合于刚开始学习c++学者使用的入门级C/C++ 集成开发环境(IDE)。这款软件很自由,遵守GPL许可协议分发源代码。它大大集成了MinGW中的GCC编译器、GDB调试器和 AStyle格式整理器等众多自由软件。非常的试用,而且界面分类清楚,具有很强大的功能。

手把手教你c++复制构造函数

2、点开文件,选择新建源代码,这时候新建的代码文本还是没有命名的,是一个空命名的文件,下面我们可以通过界面左上角的文件选项,选择另存为,可以存在电脑里任何一个盘,小编为了下次可以更好的找到文件,我存在电脑的桌面上。当然你们可以选择任何一个盘,根据各人所需

手把手教你c++复制构造函数

3、复制构造函数

形如 X::X( X& ), 只有一个参数即对同类对象的 引用,如果没有定义,那么编译器生成缺省复 制构造函数

class Complex { private :

double real, imag;

};

Complex c1; //调用缺省构造函数

Complex c2(c1);//调用缺省的复制构造函数,

//将 c2 初始化成和c1一样

手把手教你c++复制构造函数

4、如果定义的自己的复制构造函数,则缺省的复制构造函数不存在。

class Complex {

private :

double real,imag; public:

Complex( Complex & c ) { real = c.real;

imag = c.imag;

cout << “Copy Constructor called”;

}

};

Complex c1; //调用缺省构造函数

Complex c2(c1);//调用自己定义的复制构造函数,

//输出 Copy Constructor called

手把手教你c++复制构造函数

5、注意:

不允许有形如 X::X( X )的构造函数 class CSample {

CSample( CSample c ) {

} //错,不允许这样的构造函数

};


手把手教你c++复制构造函数

6、即使缺省的不带参数的构造函数不存在,缺省的复 制构造函数仍然存在。

class C1{

public:

C1() {

}

};

C1 c1,c2(c1);

手把手教你c++复制构造函数

7、复制构造函数在以下三种情况被调用:

a.当用一个对象去初始化同类的另一个对象时 Complex c2(c1);

Complex c2 = c1;

b.如果某函数有一个参数是类 A 的对象,那么该函数 被调用时,类A的复制构造函数将被调用

void f( A a ) {

a.x = 1;

};

A aObj;

f ( aObj) ; // 导致A的复制构造函数被调用,生成形

// 参传入函数

手把手教你c++复制构造函数

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢