操作符重载

操作符->

class ScreenPtr {
 // ...
private:
 Screen *ptr;

};


// 支持指针行为的重载操作符
class ScreenPtr {
public:
 Screen& operator*() { return *ptr; }
 Screen* operator->() { return ptr; }
 
 //....

};


ps->move( 2, 3 );

     因为成员访问操作符箭头的左操作数的类型是 ScreenPtr 所以使用该类的重载操作符该操作符

返回一个指向 Screen类对象的指针,内置成员访问操作符箭头被依次应用在这个返回值上,以调用 Screen类的成员函数 move()

显式调用形式为:

ps.operator->()->move(2, 3);//显式调用操作符->

操作符++和--

class ScreenPtr {
public:
 Screen& operator++(); // 前置操作符
 Screen& operator- - ();
 Screen& operator++(int); // 后置操作符
 Screen& operator- - (int);
 // ...
};

为区分后置操作符与前置操作符的声明,重载的递增和递减后置操作符的声明有一个额外的int 类型的参数

在实现后置操作符时不需要给出参数名,因为它没有被用在操作符定义中。

后置操作符的显式调用要求为整型实参指定一个实际的值,显式调用而指定的实参被忽略,因为它没被用在重载操作符的定义中。

parr.operator++(1024); // 调用后置操作符++


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值