gpt4 book ai didi

c++ - AddRef 和函数签名

转载 作者:行者123 更新时间:2023-11-30 01:01:26 24 4
gpt4 key购买 nike

我一直对函数签名使用以下规则,这些函数根据是否执行 AddRef 返回引用计数对象,但我也想向我的同事解释一下......所以我的问题是,下面描述的规则是一个被广泛遵循的规则?我正在寻找(例如)提倡这种风格的编码规则的指针。


如果函数没有添加对象的引用,应该作为函数的返回值返回:

class MyClass
{
protected:
IUnknown *getObj() { return m_obj; }
private:
IUnknown *m_obj;
};

但是,如果函数添加对对象的引用,则对象的指针指针将作为参数传递给函数:

class MyClass
{
public:
void getObj(IUnknown **outObj) { *outObj = m_obj; (*outObj)->AddRef(); }
private:
IUnknown *m_obj;
};

最佳答案

在创建新对象且调用者必须取得其所有权的情况下,使用引用计数智能指针更为典型。

关于c++ - AddRef 和函数签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/536281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com