2014-02-11 2 views
2

Sean Parent의 원어민 강연에서 가능한 한 묵시적 소유권을 가진 몇 가지 포인터를 사용하는 것이 좋습니다. 그는 00:53:06에 PIMPL 구현을 래핑하는 것은 쉽지 않다고 말합니다. https://channel9.msdn.com/Events/GoingNative/2013/Cpp-Seasoning원시 포인터 숨기기 PIMPL을 래핑하는 방법

나는 그가 여기서 무엇을 의미 하는지를 잘 모른다. 구현 포인터는 항상 그것을 사용하는 클래스에서 숨겨져 있다고 생각했습니다. PIMPL을 더 편리하게 만들 수있는 추가 레이어가 있습니까?

편집 : 이전에 그는 unique_ptrshared_ptr을 원시 포인터로 계산합니다. 그래서 나는 혼란 스럽습니다. 나는 unique_ptrshared_ptr이 리소스 처리를 단순화한다는 것을 알고 있습니다. 나는 그 (것)들을 더 멀리 숨기는 어떤 방법도 알지 못한다.

+1

클래스 구현 자체에서 숨기고 'unique_ptr'과 같은 것을 사용하여 3 | 5 그룹을 작성하지 않아도됩니다. – user3286380

답변

1

예. unique_ptr을 사용하십시오. pimpl 관용구를 사용하는 클래스는 미가공 포인터를 소유하고 있으며 가능한 한 미처리 포인터를 소유하는 것이 좋습니다.

class T { 
public: 
    T() : impl{} {}; 
private: 
    struct impl; 
    std::unique_ptr<impl> pImpl_; 
} 
관련 문제