我剛剛意識到我甚至無法弄清楚C++中引用成員的一個用例。說,如果我定義以下類:何時使用引用成員?
class Book {
public:
Book(const Author& author) : author(author) {}
private:
const Author &author;
}
我怎麼能使用它?如果我通過一個new
版Author
它:
Book book(*(new Author()));
不會造成內存泄露? Author
什麼時候發佈?
讓我再試一次。如何通過一個本地變量:
Book macBook() {
Author author();
return Book(author);
}
不是返回的書有一個無效的(釋放)參考嗎?
我無法想象使用它的第三種方法。那麼爲什麼參考成員存在?我應該什麼時候使用它?我想知道有share_ptr
。但我應該總是喜歡share_ptr
參考?
只要確保它會超過引用,即保存引用的對象的實例,就可以初始化對象的引用,而不管它如何分配。 – thokra