重载操作符(3)
重载关系操作符:
class Object
{
public:
bool operator == (const Object& other){ }
};
重载类型转换符:
class Object
{
public:
operator Type() // Type为目标类型
{
Type result;
return result;
}
};
重载输入输出操作符:
Logger& operator << (Type value)
{
return *this;
}
class Logger
{
public:
Logger()
{
}
Logger& operator << (int value)
{
printf("%d", value);
return *this;
}
Logger& operator << (double value)
{
printf("%f", value);
return *this;
}
Logger& operator << (const char* value)
{
printf("%s", value);
return *this;
}
Logger& operator << (const Point& point)
{
printf("(%d,%d)", point.x, point.y);
return *this;
}
Logger& Print(const char* value)
{
printf("%s", value);
return *this;
}
Logger& Print(const Point& point)
{
printf("(%d,%d)", point.x, point.y);
return *this;
}
};
注:有返回值是为了能连续输入,所以返回值一般为左值。