具有此代码的类是ClassName指针的引用类,即:
class ClassName;
class ClassRef
{
ClassName* m_class;
...
operator ClassName *() const { return m_class; }
...
我假设这用于指针有效性检查,例如:
ClassRef ref(new ClassName())
if (ref) { bla bla bla }
我的想法是否正确?
答案 0 :(得分:10)
这是转换运算符的重载。每当需要将ClassRef
对象转换为ClassName
指针类型时,都会调用此运算符。
因此;
ClassRef r;
ClassName * p = r;
将利用此过载。