在进行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; };