在许多为您制作某些东西的 C++ API(基于 COM 的 API)中,指向所构造对象的指针通常需要作为**
指针(并且该函数将为您构造并初始化它)
您通常会看到如下签名:
HRESULT createAnObject( int howbig, Object **objectYouWantMeToInitialize ) ;
-- 但您很少看到新对象作为返回值传递。
除了人们想要查看错误代码之外,这是什么原因?将模式而不是返回的指针用于更简单的操作是否更好,**
例如:
wchar_t* getUnicode( const char* src ) ;
或者这会更好地写成:
void getUnicode( const char* src, wchar_t** dst ) ;
我能想到的最重要的事情是记住释放它,并且**
出于某种原因,这种方式往往会提醒我我也必须释放它。