运算符 -> 重载示例

example of operator -> overloading

本文关键字:重载 gt 运算符      更新时间:2023-10-16

我正在尝试获得一个过载" ->"的示例。根据教程,签名将是::操作员 ->()以反映A-> b。

该函数如何确定要在?

上操作的成员

我假设它可以将指针返回到类,对象或参考。对此的注意事项是什么,例如处理智能指针属性等。

template<class T>
class PointerObject
{
public:
    PointerObject(T* p)
        : _p(p)
    {}
    T* operator ->()
    {
        return _p;
    }
private:
    T* _p;
};
struct A
{
    int x, y;
};
int main()
{
    A a;
    PointerObject<A> po(&a);
    po->x = 1;
    po->y = 1;
}