我试图重载这些操作符:
<,<=,==,>=,>,也许以后!=,在一个结构.
似乎将结构的对象与同一结构的另一个对象进行比较很容易,因为当为该场景重载运算符时,该定义是自动对称的.
但是,如果我想我的结构比较FOOD到int?这个也很容易FOOD,但是,当int出现时,情况怎么样?我怎么定义没有g ++给我这么多"必须包含一个参数"的错误?
我意识到了
bool operator> (const int &, const FOOD &) const;
Run Code Online (Sandbox Code Playgroud)
由于"不止一个论点"的事情而存在问题.我明白了.
在我搜索的所有论坛中,每个人的解决方案似乎都在使用friend,但他们的困难总是在课程的背景下,而不是结构.如何为s结构做?
struct FOOD {
int foodID;
double price;
bool operator> (const FOOD &) const; //FOOD > FOOD
bool operator>=(const FOOD &) const; //FOOD >= FOOD
bool operator==(const FOOD &) const; //FOOD == FOOD
bool operator<=(const FOOD &) const; //FOOD …Run Code Online (Sandbox Code Playgroud)