「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中文網其他相關文章!