C++ 如何包装PIMPL,隐藏原始指针
在Sean Parent的“走向本土”演讲中,他建议尽可能少使用隐含所有权的指针。他指出,在00:53:06包装一个PIMPL实现是微不足道的。 我不太明白他在这里的意思。我认为实现指针总是隐藏在使用它们的类中。是否有一些额外的层,可以使PIMPL更方便,我错过了 编辑: 早些时候,他说C++ 如何包装PIMPL,隐藏原始指针,c++,C++,在Sean Parent的“走向本土”演讲中,他建议尽可能少使用隐含所有权的指针。他指出,在00:53:06包装一个PIMPL实现是微不足道的。 我不太明白他在这里的意思。我认为实现指针总是隐藏在使用它们的类中。是否有一些额外的层,可以使PIMPL更方便,我错过了 编辑: 早些时候,他说unique_ptr和shared_ptr都算作原始指针。这就是为什么我感到困惑,我知道unique_ptr和shared_ptr简化了资源处理。我不知道有什么方法可以进一步隐藏它们。是的。使用一个。使用pim
unique_ptr
和shared_ptr
都算作原始指针。这就是为什么我感到困惑,我知道unique_ptr
和shared_ptr
简化了资源处理。我不知道有什么方法可以进一步隐藏它们。是的。使用一个。使用pimpl习惯用法的类“拥有”原始指针,最好尽量少拥有原始指针
class T {
public:
T() : impl{} {};
private:
struct impl;
std::unique_ptr<impl> pImpl_;
}
T类{
公众:
T():impl{}{};
私人:
结构impl;
标准::唯一性;
}
通过使用类似于unique\u ptr的方法,将其隐藏在类实现本身之外,并避免编写3 | 5的组。