【发布时间】:2020-10-02 22:01:57
【问题描述】:
我有一个如下所示的结构:
struct Lip {
int x;
friend Lip mkLip(Tester t, bool full = false);
bool operator == (Lip p) const { return x == p.x; }
bool operator != (Lip p) const { return x != p.x; }
bool operator < (Lip p) const { return x < p.x; }
};
这个问题是它在 Mac 上抛出关于指定默认参数的朋友声明的错误。我读到一种方法是在某处有一个非朋友声明,但正如您所见,我的朋友函数具有与实际结构本身相同的返回类型。在这里解决这个问题的正确方法是什么?
【问题讨论】:
-
你可以有一个返回
Lip的成员函数。如果你想让它成为一个默认参数的朋友,你需要在类中定义它。
标签: c++