我有一个 QObjectSystemdDBusManager可以返回其他 QObjects(Unit类)。这些对象没有任何理由归 拥有SystemdDBusManager,但根据Qt 文档,这可能暗示返回的对象归 SystemdDBusManager 所有。
class SystemdDBusManager : public QObject
{
Q_OBJECT
public:
Unit *getUnit(QString const &name);
};
Run Code Online (Sandbox Code Playgroud)
什么是明确表示Unit不属于的好方法SystemdDBusManager?
编写文档。
没有硬性规定,谁拥有指针,这都是约定俗成的。如果您希望调用者拥有所有权,则必须在函数的文档中明确说明。
在函数名称中传达此意图也可能是一个好主意,因此getUnit我建议将其命名为takeUnit暗示从 SystemDBusManager 获得所有权,而不是建议。
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |