メンバー関数とプライベート データを含むかなり基本的なクラスがありますが、印刷関数をクラス メンバー関数の一部にしないでください。クラスから削除してフレンドとして宣言すると、main.cpp から直接呼び出すと機能しますが、クラス メンバー関数が内部で呼び出すと宣言されません。友達であることでデータにアクセスできることは知っていますが、メンバー関数でデータを利用できるようにするにはどうすればよいでしょうか? 出来ますか?
//HEADER FILE
#include<iostream>
using namespace std;
static const int ArrSize=3;
class TicTacToe
{
//friends
friend void printBoard(char [][ArrSize]);
//member functions
public:
void makeboard();
void isValidMove();
void isWinner();
void getMove();
//data members
private:
int pRow, pCol, player;
bool validMove, winner;
char TTTarray[ArrSize][ArrSize];
};
void TicTacToe::getMove()
{
// some internal code for determining if proper input
// calls printBoard() to show what move was made.
printBoard(0);
void printBoard(char TTTarray[][ArrSize])
{
int i;
for(i=0;i<3;i++)
{
cout << TTTarray[i][0] << " " << TTTarray[i][0] << " " << TTTarray[i][2] << endl;
}
}
// MAIN.CPP FILE
#include <iostream>
#include "TicTacToe.h"
using namespace std;
int main()
{
TicTacToe a;
a.makeBoard();
printBoard(0);
a.getMove();
return 0;
}