내 프로그램의 클래스 중 일부는 타사 라이브러리를 사용합니다. - 3P 헤더를 포함하도록 구성되어야 내 클래스를 사용하여 내 프로그램의 다른 유닛이와C++ 헤더 - 인터페이스와 구현 세부 사항 간의 분리
// My.h
#include <3pheader.h>
class My
{
...
private:
3pObject m_object;
}
문제 : 도서관 개체 내 클래스의 private 멤버입니다. 다른 종류의 3p로 이동하면 전체 빌드가 위태로워 질 것입니다 ... 이 문제를 해결하는 두 가지 방법이 있습니다. 하나는 3pObject extern을 만들고 m_Object를 포인터로 바꾸고 생성자에서 초기화하는 것입니다. 두 번째는 "인터페이스"및 "팩토리"클래스를 만들고이를 내보내는 것입니다. ...
다른 문제를 해결 하시겠습니까?
boost :: scoped_ptr을 사용하지 않는 이유는 무엇입니까? – grigy
아무 것도 지정하지 않았습니다. auto_ptr 사용에 익숙합니다.이 경우 소유권 이전이 없으므로 scoped_ptr을 사용하는 것이 더 적절할 수 있습니다 –