【c++】初学拷贝函数
class Line {
public:
LPVOID getLength(void) { return &ptr; };
Line(int len) ;
Line(const Line& obj) ;
~Line();
private:
int* ptr;
};
Line::Line(int len) {
cout << "构造函数:"<<len << endl;
ptr = new int;
*ptr = len;
}
Line::Line(const Line& obj) {
cout << "拷贝函数" << endl;
ptr = new int;
*ptr = *obj.ptr;
}
Line::~Line(void) {
cout << "释放内存" << endl;
delete ptr;
}
void disPlay(Line obj) {
cout << "line 内容:" << obj.getLength() << endl;
}
Line lin1 = Line(10);
cout << "----------1-------" << endl;
Line lin2 = lin1;
cout << "----------2-------" << endl;
disPlay(lin1);
cout << "----------3-------" << endl;
disPlay(lin2);
简单理解一下,传递对象的时候,也会进行拷贝函数,同时没进行引用后,就会释放对象。
weixin_54741283: 感谢,可以连上打字了
tellsme: 请问大佬小程序可以用吗
vivian3an: 如果遇到 F11 按键切换无效,长按 esc + fn 三秒钟,可以恢复
Wickor: 因为F11或F12属于功能键,需要先按FN键才能起作用,而且FN+ESC有可能之前被误操作按下,导致锁定了功能键。所以先按一下FN+ESC,然后长按F11/F12,就可以搜到了。我也是琢磨好久。
mamingji: 实测管用。感谢博主。