5

带有此代码的类是 ClassName 指针的引用类,即:

class ClassName;

class ClassRef
{
    ClassName* m_class;
    ...
    operator ClassName *() const { return m_class; }
...

我假设这用于指针有效性检查,例如:

ClassRef ref(new ClassName())
if (ref) { bla bla bla }

我的想法正确吗?

4

1 回答 1

10

这是转换运算符的重载。每当ClassRef需要将对象转换为ClassName指针类型时,都会调用此运算符。

所以;

ClassRef r;
ClassName * p = r;

将利用这个重载。

于 2012-11-27T20:03:54.473 回答