【发布时间】:2012-03-06 09:09:57
【问题描述】:
当我想用 C++ 实例化一个类时,我通常会这样做
Book bk = new Book();
我的教授最近这样做了
Book &bk = *new Book();
他只告诉我他会使用引用来使用点(例如 bk.getTitle();) 运算符而不是箭头(例如 bk->getTitle();)。我理解这部分代码,但是当您将 * 运算符与 new 结合使用时会发生什么?
提前致谢
完整的示例代码可以找到here它是main函数中的arraystack
【问题讨论】:
-
所以你的教授教你如何泄漏内存,太棒了。
-
如果您的教授将该代码用于其他任何事情,而不是作为您确实不应该做的事情的示例,那么您应该找一位新教授。
-
可能你的教授说,
const Book &bk = Book();。如果不是这样,我真的不明白你教授的意思。 -
@Mahesh :问题中的语法是有效的,它的语义是极其错误的。
-
@Mahesh 你可以做
delete &bk,但这仍然是无意义的。 @OP 找一位新教授。
标签: c++ class pointers reference