我创建了一个类hexBoard,里面有一个数据结构来存储和显示游戏板我已经成功地重载了 class hexBoard { vector<vector<bool>> board; ..... void display(); } ostream& operator<< ( ostream& out , hexBoard& hex ) { ....... return out; } int main() { hexBoard hex; cout<<hex; }这工作得很好现在我的问题是何时尝试通过编写从成员函数display()内部显示同一块板cout 出现错误,例如没有匹配的类型 hexBoard::display() { cout<<*this; } int main() { hexBoard hex; hex.display(); }请告诉我哪里出错了,正确的方法是什么 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 因为您还没有超载this.operator<<(ostream&, hexBoard&)。请记住,operator<<()在类外被重载,因为它的第一个参数永远不能隐式地为this。因此,您已经重载了operator<<(ostream&, hexBoard&),但是在您的方法display()中,它正在寻找永远不会出现的this.operator<<(ostream&, hexBoard&)。 (adsbygoogle = window.adsbygoogle || []).push({});
10-01 23:54