c++类型转换运算符

xiaoxiao2021-02-28  66

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

转载请注明原文地址: https://www.6miu.com/read-42381.html

最新回复(0)