나는 희소 행렬 클래스를 작성 중이다. 그 내용을위한 템플릿이 될 노드 클래스가 필요합니다. 이 수업을 작성할 때의 내 문제는 다음과 같습니다.값으로 컨테이너 클래스에 복사하는 방법?
내용을 어떻게 저장합니까?
값으로 내용을 저장하고 싶습니다. 포인터로 저장하고 파손해야한다면 문제가 생길 수 있습니다. 어떻게하면 setContents 메서드에서 안전하게 복사본을 수행 할 수 있습니까? C++은 내 노드 컨테이너에 배치해야하는 클래스가 자신을 복제 할 수 있다는 보장을 제공합니까?
복사 생성자를 살펴 보았지만 약간의 불안감이 있습니다. 포함 된 클래스가 복사 생성자를 구현하지 않으면 어떻게됩니까? 그런 다음 참조로 노드에 전달하는 것은 현명하지 않습니다. 원래 개체를 삭제하거나 범위를 벗어나는 경우 매달린 참조로 이어질 수 있기 때문입니다.
일종의 "표준 C++"방법은 무엇입니까?
사용자 제공 메서드 (복사 생성자 또는 복제본)에 대한 호출로 인해 예외가 throw 될 수 있으므로주의하십시오. try/catch로 코드를 혼란시켜야 함을 의미하는 것은 아니지만,이 가능성을 인식하고 행동을 명령해야 컨테이너가 일관성없는 상태로 남을 수 있습니다. 당신이 고려해야 할 유일한 방법은 '파괴자'입니다. 누구든지 파괴자를 던질만큼 어리석은 사람은 당신의 연민에 합당하지 않습니다. –