C++雾中风景6:拷贝构造函数与赋值函数

在进行C++类编写的过程之中,通常会涉及到类的拷贝构造函数与类的赋值函数。初涉类编写的代码,对于两类函数的用法一直是挺让人困惑的内容。这篇文章我们会详细来梳理拷贝构造函数与赋值函数的区别。

1.调用了哪个函数?

上述两种函数的使用和C++之中类的定义紧密相关,所以我们先定义一个类:

class Line { public: int getLength( void ); Line( int len ); //简单的构造函数 Line( const Line &obj) { //拷贝构造函数 cout << "调用拷贝构造函数" << endl; ptr = new int; *ptr = *obj.ptr; }; Line& operator=(const Line &obj) { //赋值函数 cout << "调用赋值函数" << endl; if(this == &obj) { return *this; } delete ptr; ptr = new int; *ptr = *obj.ptr; return *this; }; ~Line(); // 析构函数 private: int *ptr; };

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwyjj.html