operator,它有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换)。
1.operator overloading
C++可通过operator 重载操作符,格式如下:类型T operator 操作符 (),如比重载+,如下所示
2 operator casting
C++可通过operator 隐式转换,格式如下: operator 类型T (),T是要转换到的类型。如下所示
载入转换运算符函数!
100
扩展1:
(A)b与A(b)的区别
(1)
以上代码中
注意:
(
int
)obj与int(obj)相同
(int)obj:C风格
int(obj) :C++风格
(2)
此外
class A{};
class B{};
B b;
注意:
(
A
)b不同于A(b)
(A)b;//类型转换 将b对象转为A类型对象 返回A类型的临时对象 调用类型隐式转换函数
Aa = A(b);//其中A(b)创建A类型对象 b作为参数 返回A类型的临时对象 调用构造函数
扩展2:
A(x)的使用:
A a = A(x);实际使用该语句时b可以为左值或右值,上例中x为左值;
A(x);//仅当x为一个右值 可以将此作为一条单独语句(若x为左值,会发生重定义错误)