我是指针的新手。想要了解以下代码片段的含义。帐户是一个类。
Account a2 = *(new Account(123));
我理解new会将地址返回给Account类型的对象。现在,当我们使用'*'运算符取消引用它并将此值传递给a2 a2得到什么,并且这个对象是否仍然存在于堆中?
另外,我们是否需要在类帐户中为此类作业定义复制构造函数?
答案 0 :(得分:3)
Account a2 = *(new Account(123));
您在免费商店中创建一个新的Account
对象,此对象需要delete
通过new
给您的指针,否则会出现内存泄漏。
当前代码取消引用从new
返回的指针,并将Account
对象复制到基于堆栈的Account
对象a2
中。这意味着指针丢失,因此存在内存泄漏,因为你再也不能delete
了。