C++ での参照メンバーの使用例を 1 つも理解できないことに気付きました。次のクラスを定義するとします。
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);
}
返された Book に無効な (解放された) 参照がありませんか?
3番目の使用方法が想像できません。では、なぜ参照メンバーが存在するのでしょうか。いつ使用すればよいですか?
編集:私はあることを知っていますshare_ptr
。しかし、私は常に参照することを好むべきshare_ptr
ですか?