저는 C++에서 참조 멤버의 사용 사례 하나를 찾아 낼 수 없다는 것을 깨달았습니다. 다음 클래스를 정의하면 다음과 같습니다.참조 회원을 언제 사용합니까?
class Book {
public:
Book(const Author& author) : author(author) {}
private:
const Author &author;
}
어떻게 사용할 수 있습니까? 나는 그것에 new
에드 Author
을 전달하는 경우 :
Book book(*(new Author()));
은 메모리를 누설하지 않습니다? Author
은 언제 출시 되나요?
다시 시도하겠습니다. 로컬 변수를 전달하는 방법 :
반환 된 책에 유효하지 않은 (릴리스 된) 참조가 없습니까?
세 번째 사용 방법은 상상할 수 없습니다. 그렇다면 레퍼런스 멤버는 왜 존재합니까? 언제 사용해야합니까?
편집 : 나는 share_ptr
이 있음을 알고 있습니다. 그러나 나는 언제나 참고로 share_ptr
을 선호해야합니까?
개체를 할당 한 방법에 관계없이 참조를 초기화 할 수 있습니다 (개체가 참조를 보유한 개체의 인스턴스보다 수명이 길어질 수 있음). – thokra