, ( ), , ( ). C++ , , C++ , . , , C++, . C++ , , , . , , , .
, , , . , C++ , . . C++ , . - (handle-class) . - (opaque) , . :
// FastStringItf.h class _declspec(dllexport) FastStringItf { class FastString; // introduce name of impl. class // FastString *m_pThis; // opaque pointer (size remains constant) // ( ) public : FastStringItf(const char *psz); ~FastStringItf(void); int Length(void) const; // returns # of characters // int Find(const char *psz) const; // returns offset // };
, FastString. , , FastString . FastString . DLL , . :
// faststringitf. // (part of DLL, not client) // ( DLL, ) #include "faststring.h" #include "faststringitf.h" FastStringItf::FastStringItf(const char *psz) : m_pThis(new FastString(psz)) { assert(m_pThis != 0); } FastStringItf::~FastStringItf(vo1d) { delete m_pThis; } int FastStringItf::Length(void) const { return m_pThis->Length(); } int FastStringItf::Find(const char *psz) const { return m_pThis->Find(psz); }
DLL FastString, FastString , FastStringItf , , , . FastString. FastString .
1.4 , - . , , , (firewall ) . , . - , . C++.
- DLL, . , . FastString , , . . , (performance-critical domains), ( , ) . , - / , , , .