operator,它有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换)。
1.operator overloading
C++可通过operator 重载操作符,格式如下:类型T operator 操作符 (),如比重载+,如下所示
template<class T>
class A
{
public:
const T operator + (const T& rhs)
{
return this->m_ + rhs;
}
private:
T m_;
};
2 operator casting
C++可通过operator 隐式转换,格式如下: operator 类型T (),T是要转换到的类型。如下所示
#include<iostream>
using namespace std;
#include <iostream>
using namespace std;
#include<iostream>
using namespace std;
class MyClass
{
public:
MyClass(int b = 0):a(b)
{
}
MyClass(MyClass &temp)
{
}
~MyClass()
{
}
operator int()//转换运算符,MyClass转换到int类型
{
cout<<"载入转换运算符函数!"<<endl;
return a;
}
public:
int a;
};
int main()
{
MyClass obj(100);
cout<<(int)obj<<endl;//强转换
system("pause");
return 0;
}