我收到此错误消息:
'friend' used outside of class.
我的标题有这一行
private:
friend ostream& operator << (ostream&, card&);
并在cpp
文件中
friend ostream& operator << (ostream& outStream, card& card)
{
Suit suit=card.getSuit();
Rank rank=card.getRank();
string str;
switch(rank)
{ /*...*/ }
outStream<<str;
return outStream;
像这样。
我搜索过,但大多数情况下它表示我需要同一个班级而没有朋友,但我尝试了,但它没有用。你能给我一些建议吗?
谢谢
答案 0 :(得分:8)
删除friend
文件中的.cpp
。只需要(并允许)头文件中的class
定义。
在头文件中,您声明操作员是您的朋友:
private:
friend ostream& operator << (ostream&, card&);
这是该类的属性。
在源文件中,只需定义运算符&#34;通常&#34;:
ostream& operator << (ostream& outStream, card& card)
{
// ...
}
在这里,friend
没有意义:谁的朋友?多个类可能会将运算符声明为朋友。