operator它有兩種用法,一種是operator overloading(操作符重載),一種是operator casting(操作隱式轉換)。
1、操作符重載
C++可以通過operator實現重載操作符,格式如下:類型T operator 操作符 (),比如重載+,
C++可以通過operator實現重載操作符,格式如下:類型T operator 操作符 (),比如重載+,
template<typename T> class A { public: const T operator+(const T& rhs) { return this->m_ + rhs; } private: T m_; };
2、 操作隱式轉換
C++可以通過operator實現重載隱式轉換,格式如下:
operator T (),其中T是一個類型,比如下面這個例子
class A { public: explicit A(int b=0){ b_=b; } operator int() { return this->b_; } private: int b_; }; int main() { A a; int b=a; cout<<b; return 0; }
當執行b=a時a就發生了隱式類型轉換,實際上執行了a.opertor int()函數 即
int b=a相當於 int b=a.b_