gpt4 book ai didi

c++ - 重载运算符的内存问题

转载 作者:行者123 更新时间:2023-11-30 02:04:36 26 4
gpt4 key购买 nike

<分区>

假设有这样的代码:

class MyClass {
public:
MyClass(int foo) : foo(foo){}

private:
int foo;

//overloaded operator +
public:
MyClass operator+(MyClass &mc){
MyClass c(mc.foo + foo);
return c;
}
};

int main(int argc, char* argv[]){
MyClass c1(10);
MyClass c2(12);

c2 = c1 + c2;

return EXIT_SUCCESS;
}

运算符 + 被重载,因此它不会修改对象而是创建一个新对象并返回它。

c2 = c1 + c2被调用时,c2绑定(bind)了新的对象,但是之前绑定(bind)的对象不是c2 (或者至少在我看来)被释放了。我是对的吗?

因为 C++ 没有垃圾收集器,这是个问题吗?

我错过了什么吗?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com