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作为标识符的代码).
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |