【发布时间】:2015-09-01 12:44:06
【问题描述】:
例如:
#include <iostream>
using namespace std;
int main(){
int a;
+a;
}
我希望算术加“+”运算符被重载,这样如果它出现在一个标识符之前(在本例中为“a”),它将打印“Hello”,而“+”运算符之前没有另一个标识符,基本上不是这样的:“identifierA+identifierB”,而是这样的“+identifierB”(在本例中是“+a”),程序编译的结果是“Hello”。 这怎么可能?
提前感谢您的帮助。
【问题讨论】:
-
该语言不允许为基本类型重载现有运算符。
-
例如,我有一个动态指针,我正在访问索引 2:“*(pointer+1)”,我试图弄清楚如何在标识符之前有一个诸如星号之类的运算符某种形式,在此之前没有标识符。
-
要重载用户定义类型的一元加号运算符,请参阅stackoverflow.com/questions/5117563/use-of-unary-plus-operator
标签: c++ math operator-overloading operators identifier