c ++的operator的两种用法

来源:互联网 发布:国家社科基金数据库 编辑:程序博客网 时间:2024/06/05 08:35

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



0 0
原创粉丝点击