c++类型转换运算符

来源:互联网 发布:淘宝一个心要多少单 编辑:程序博客网 时间:2024/06/06 12:29
#include <iostream>using namespace std;class boolOperator{public:    boolOperator(int x)    {        data = x;    }    bool operator !()    {        cout << "member funtion bool operator !()" << endl;        return !data;    }    operator bool()    {        cout << "member operator bool " << data << endl;        return data != 0;    }    bool operator == (const bool &rhs)    {        cout << "member function:bool operator == ( const bool &rhs ) called" << endl;        return (bool)data == rhs;    }   private:    bool operator == (const boolOperator &rhs);    int data;};bool operator == (const boolOperator &lhs, bool rhs){    cout << "global bool operator ==( const MyClass &lhs, bool &rhs ) " << endl;    return true;}bool operator == (const bool &rhs, const boolOperator &lhs){    cout << "global bool operator == ( bool &rhs,const MyClass &lhs )" << endl;    return true;}int main(){    boolOperator b1(0);    boolOperator b2(10);    if (b1)    {        cout << "b1 true;" << endl;    }    else    {        cout << "b1 false"<<endl;    }    if (!b1)    {        cout << "b1 false;" << endl;    }    else    {        cout << "b1 true" << endl;    }    if (b2 == true)    {        cout << "b2 true" << endl;    }    else    {        cout << "b2 false" << endl;    }    if (true == b2)    {        cout << "true == b2" << endl;    }    else    {        cout << "true != b2" << endl;    }    return 0;}

这里写图片描述

原创粉丝点击