c ++的operator的兩種用法
阿新 • • 發佈:2019-01-30
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; }