다음은 질문을 설명하기위한 간단한 예입니다.
class A {};
class B
{
B(A& a) : a(a) {}
A& a;
};
class C
{
C() : b(a) {}
A a;
B b;
};
그래서 B는 C의 일부를 업데이트 할 책임이 있습니다. 나는 lint를 통해 코드를 실행했으며 참조 멤버 lint # 1725에 대해 엉망이었습니다 . 여기에서는 기본 복사 및 할당을 충분히 돌보는 것에 대해 이야기하지만 기본 복사 및 할당도 포인터로 나쁘므로 이점이 거의 없습니다.
나체 포인터는 그 포인터를 삭제할 책임이있는 사람을 불확실하게 소개하기 때문에 항상 참조를 사용하려고합니다. 값으로 객체를 포함하는 것을 선호하지만 포인터가 필요한 경우 포인터를 소유하는 클래스의 멤버 데이터에 auto_ptr을 사용하고 객체를 참조로 전달합니다.
포인터가 null이거나 변경 될 수있는 경우 일반적으로 멤버 데이터에 포인터 만 사용합니다. 데이터 멤버에 대한 참조보다 포인터를 선호해야하는 다른 이유가 있습니까?
참조가 초기화 된 후에는 참조를 변경해서는 안되므로 참조가 포함 된 객체를 할당 할 수 없다고 말하는 것이 사실입니까?