C++:重载类似整数类型的运算符

Ric*_*dle 2 c++ g++ operator-overloading

我有一种被称为MyType是一个int:

typedef int MyType;
Run Code Online (Sandbox Code Playgroud)

它被视为int整个代码.

我想能够分别重载操作两个intMyType:

class C
{
public:
   C& operator>>(int i) {}
   C& operator>>(MyType i) {}
};
Run Code Online (Sandbox Code Playgroud)

但我不能:

overload.cpp:7:7: error: 'C& C::operator>>(MyType)' cannot be overloaded
overload.cpp:6:7: error: with 'C& C::operator>>(int)'
Run Code Online (Sandbox Code Playgroud)

我可以吃蛋糕吗?

Cat*_*lus 6

按照惯例,你需要一个强大的typedef.其中一个实现是BOOST_STRONG_TYPEDEF.