加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Postfix运算符过载中虚拟参数的用途? C

发布时间:2020-12-16 10:02:33 所属栏目:百科 来源:网络整理
导读:当重载postfix操作符时,我可以做一些简单的事情 Class Foo{private: int someBS;public: //declaration of pre postfix++ Foo operator++(); //rest of class not shown}; 前缀不需要采用任何参数,因此当我定义它时,类似于 Foo Foo::operator(){ someBS ++;
当重载postfix操作符时,我可以做一些简单的事情

Class Foo
{
private: 
   int someBS;
public:
   //declaration of  pre &postfix++
   Foo operator++();
   //rest of class not shown
};

前缀不需要采用任何参数,因此当我定义它时,类似于

Foo Foo::operator()
{
   someBS ++;
   return *this;
}

这对我来说很有意义.

当我去定义postfix重载时,我必须包含一个伪int参数

Foo Foo::operator++(int)
{
   Foo temp = *this;
   someBS ++;
   return temp;
}

我的问题是为什么?我不会在方法中使用它.前缀运算符不需要一个.返回临时值的后缀不依赖于伪参数.我知道,如果我想重载一个后缀运算符,它是如何完成的,我只是想知道背后的原因.

解决方法

虚拟参数只是用于区分后缀和前缀运算符.名称或 – 在两种情况下都是相同的,因此必须有一些方法来指定您正在定义的名称.添加一个虚拟参数可能并不优雅,但任何替代方案都可能需要发明新语法(可能是一个postfix关键字,它会破坏使用postfix作为标识符的代码).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读