“PIMPL”惯用法的好处
在“指向实现的指针”(PIMPL) 惯用法中,公共类封装了内部结构或类(“实现”),提供对外部用户隐藏的实现。该技术具有多种优势:
“Pimpl 类”的设计注意事项
而 PIMPL隔离实现,将公共方法放在 PIMPL 类而不是公共类上可能看起来违反直觉。但是,这种方法可确保:
独立实现的示例实现
考虑下面的示例代码,其中“Purr( )" 实现包含在 PIMPL 类中:
// header file: class Cat { private: class CatImpl; // PIMPL class CatImpl* cat_; // Pointer to PIMPL public: Cat(); // Constructor ~Cat(); // Destructor Purr(); // Public method }; // CPP file: #include "cat.h" class Cat::CatImpl { public: Purr(); }; Cat::Cat() { cat_ = new CatImpl; } Cat::~Cat() { delete cat_; } void Cat::Purr() { cat_->Purr(); } void CatImpl::Purr() { // Actual implementation of "Purr()" }
在此示例中,公共类“Cat”处理“CatImpl”对象的创建和销毁,但将“Purr()”的实现委托给 PIMPL 类。这种方法确保“Purr()”实现的细节对外部用户隐藏,同时提供与“Cat”类交互的稳定接口。
以上是在 C 中使用 PIMPL 习惯用法有哪些好处和注意事项?的详细内容。更多信息请关注PHP中文网其他相关文章!