訪問引用類實例的私有成員的適當方式是什麼?例如,從Cookie
的實例訪問initialNumberOfColumns
?然後將該值用於其他類成員函數中,例如Game::Game()
之後,參考訪問器檢索到Cookie
類的成員。通過引用訪問者訪問私有成員
first.h:
class Cookie {
public:
Cookie();
~Cookie();
void takeABite (int column, int row);
int getNumberOfRows();
int getNumberOfRows(int colNum);
int getNumberOfColumns();
int getNumberOfColumns(int rowNum);
void display (std::ostream& output);
private:
int initialNumberOfRows;
int numberOfRows;
int numberOfColumns
int* cookie;
};
second.h:
class Game {
public:
Game();
bool gameEnded();
bool biteIsLegal (int column, int row);
Cookie& getCookie();
private:
Cookie cookie;
};
second.cpp在這裏我有困難。我知道我需要使用Cookie& Game::getCookie()
,但我不知道如何,他們可以在成員函數Game()
訪問的Cookie
類這樣的私有成員返回如下:
Cookie& Game::getCookie() {
return //not sure how to access;
}
Game::Game() {
initialNumberOfRows = numberOfRows = 4 + rand() % (MAXROWS - 4);
numberOfColumns = numberOfRows;
while (numberOfColumns == numberOfRows) {
numberOfColumns = 4 + rand() % (MAXROWS - 4);
}
cout << "The cookie has " << numberOfRows << " rows of "
<< numberOfColumns << " columns" << endl;
for (int row = 0; row < numberOfRows; ++row) {
cookie[row] = numberOfColumns;
}
}
如果它不是一個私有成員,但公衆一個,你知道該怎麼做?好消息是,返回私人類成員的引用完全相同。 –
我相信如此。我會把'返回cookie'對嗎?但是,這只是給了我''Game'類的私人成員'Cookie cookie'。我如何訪問'cookie.initialNumberOfRows'? – pstatix
@JohnnyMopp:除了'Cookie'沒有出現'initialNumberOfRows'的getter。 –