【发布时间】:2014-10-10 01:35:45
【问题描述】:
我有一个包含成员函数和私有数据的非常基本的类,但我希望打印函数不成为类成员函数的一部分。我将它从类中删除并将其声明为朋友,当直接从 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;
}
【问题讨论】:
-
这里肯定需要看一些代码。
-
没有声明。您是否忘记在打印声明中包含头文件?
-
Dmitri - 感谢您的回复。不知道我是否明白你的意思。
标签: c++ class member friend-function