我刚刚意识到我什至无法弄清楚 C++ 中引用成员的一个用例。说,如果我定义以下类:
class Book {
public:
Book(const Author& author) : author(author) {}
private:
const Author &author;
}
我怎么可能使用它?如果我将new
ed传递Author
给它:
Book book(*(new Author()));
它不会泄漏内存吗?什么时候Author
发布?
让我再尝试一次。如何将局部变量传递给它:
Book macBook() {
Author author();
return Book(author);
}
返回的书没有无效(已发布)引用吗?
我无法想象第三种使用方式。那么为什么引用成员存在呢?我应该什么时候使用它?
编辑:我知道有share_ptr
。但我应该总是更喜欢share_ptr
参考吗?