C++ 类 拷贝构造函数

/* class constructor && desctructor */

/* 新建一个对象, 使用老的对象赋值,实际上是调用的拷贝构造函数 */

#include <iostream>

using namespace std;

class Line {

private :

int *ptr;

public:

/* constructor */

Line(int len);

Line(const Line &old);

/* destructor */

~Line(void);

void setLength(int len);

int getLength();

};

Line::Line(int len)

{

  ptr = new int;

  *ptr = len;

}

Line::~Line()

{

cout << "Destructor!" << endl;

delete ptr;

}

Line::Line(const Line &old)

{

ptr = new int;

*ptr = *old.ptr;

}

void Line::setLength(int len)

{

*ptr = len;

}

int Line::getLength()

{

return *ptr;

}

int main()

{

/* old obj */

Line l(10);

cout << "Line:" << l.getLength() << endl;

/* copy construct1 */

Line l2(l);

cout << "Line2 :" << l2.getLength() << endl;

/* copy construct2 */

/* Line l3 = l2;  < == > Line 3(l2);  */

Line l3 = l2;

cout << "Line3 :" << l3.getLength() << endl;

return 0;

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容