1. 程式人生 > >c ++的operator的兩種用法

c ++的operator的兩種用法

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;
}