#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