From 1d0bae075392d3ecdf4cc710b9383181869bd37f Mon Sep 17 00:00:00 2001 From: FengJungle Date: Sat, 26 Feb 2022 16:08:24 +0800 Subject: [PATCH] feature: add PImpl Pattern demo code. --- 31.PImplPattern/01.Picture/PImpl.jpg | Bin 0 -> 73537 bytes 31.PImplPattern/02.Code/demo.cpp | 27 +++++++++++++++++++++++++++ 31.PImplPattern/02.Code/demo.h | 22 ++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 31.PImplPattern/01.Picture/PImpl.jpg create mode 100644 31.PImplPattern/02.Code/demo.cpp create mode 100644 31.PImplPattern/02.Code/demo.h diff --git a/31.PImplPattern/01.Picture/PImpl.jpg b/31.PImplPattern/01.Picture/PImpl.jpg new file mode 100644 index 0000000000000000000000000000000000000000..70827f41afcfa6fb97774ebf6ea7a51b1bd6e947 GIT binary patch literal 73537 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

gBF_al!UmcMQo*<4w2$D*T+Cur!~r)w#@ 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%0DIO* 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 literal 0 HcmV?d00001 diff --git a/31.PImplPattern/02.Code/demo.cpp b/31.PImplPattern/02.Code/demo.cpp new file mode 100644 index 0000000..59b098b --- /dev/null +++ b/31.PImplPattern/02.Code/demo.cpp @@ -0,0 +1,27 @@ +#include "demo.h" +// include other necessary files +#include .... + +class PAimpl +{ +public: + void func1(int a, char* b) + { + // implementation + } + bool isEnabled() + { + // implementation + return true; + } +}; + +void A::func1(int a, char* b) +{ + pimpl->func1(a, b); +} + +bool A::isEnabled() +{ + return pimpl->isEnabled(); +} \ No newline at end of file diff --git a/31.PImplPattern/02.Code/demo.h b/31.PImplPattern/02.Code/demo.h new file mode 100644 index 0000000..a33cf26 --- /dev/null +++ b/31.PImplPattern/02.Code/demo.h @@ -0,0 +1,22 @@ +/* header file */ + +// forward declaration +class PAimpl; + +class A +{ +public: + A() + { + // initial work + } + ~A() { + // free resource + } +public: + void func1(int a, char* b); + bool isEnabled(); + // other public interface which will exposed outside +private: + PAimpl* pimpl; +}; \ No newline at end of file