注册 登录
编程论坛 C++教室

求助!

huyukunbianc 发布于 2012-09-30 22:56, 313 次点击
运算重载以后,调用cout.operator<<  必须加括号才能正常输出,而把operator去掉以后cout<<可以直接输出信息,这是为什么啊?
4 回复
#2
寒风中的细雨2012-10-01 01:43
没记错应该是  显式调用  和  隐式调用
#3
pangding2012-10-01 10:00
语法就是这样的。
按对象调用成员函数,就是函数调用了,得遵循函数调用的语法,也就是 obj.func(args) 这样的语法。这是通用的,什么成员函数都可以用这种方法调用,包括重载的运算符。
不过重载的运算符,可以使用运算符表达式调用。比如二两运算符 +,如果你写 a + b,那么会被编译器解释成 a.operator+ (b) 或者 operator+ (a, b) 这样的形式。只要你重载的正确,编译器就会正确地理解代码。可以把这个看成是重载运算符的特权。如果你不用,当然也可以用通用的方法来调用。
#4
huyukunbianc2012-10-01 19:28
回复 3楼 pangding
哦 谢谢大神~~
#5
huyukunbianc2012-10-01 19:28
回复 2楼 寒风中的细雨
谢谢大神~~~
1