我是C ++的新手(我的通常语言是Python)。
我从here发现了如何打印数组。我从here发现如何将类对象作为其属性之一cout
。我从here发现cout
只有在friend
可以访问该类的属性时才有效。
但是,当我将答案结合起来时,它似乎不起作用。 这就是我所拥有的:
#include <iostream>
using namespace std;
class TicTacToeGame {
int board[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
friend std::ostream &operator<<(std::ostream &os, TicTacToeGame const &m);
};
std::ostream &operator<<(std::ostream &os, TicTacToeGame const &m) {
for (int i = 0; i++; i < 9) {
os << m.board[i];
}
return os;
}
int main()
{
TicTacToeGame game;
cout << game;
return 0;
}
屏幕上没有任何内容。
我希望看到的是{0, 0, 0, 0, 0, 0, 0, 0, 0}
的内容,但只要我能看到数组,就不需要花哨的格式化。
我怎样才能实现这一目标?
答案 0 :(得分:3)
修复for循环。
for (int i = 0; i++; i < 9) {
应该是
for (int i = 0; i < 9; i++) {
答案 1 :(得分:1)
感谢@immibis提醒我如何再次进行循环操作。 (我没有必要这么久......)
这是我决定暂时使用的操作员功能的更高版本,因此它打印出来就像一个井字棋盘。
std::ostream &operator<<(std::ostream &os, TicTacToeGame const &m) {
for (int i = 0; i < 9; i++) {
os << m.board[i];
if (i%3!=2) {
os << " ";
}
if (((i+1) % 3) == 0) {
os << "\n";
}
}
return os;
}