#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;
}
c++类型转换运算符
最新推荐文章于 2024-04-30 15:57:15 发布