Welcher Art ist der Zugriff auf private Mitglieder einer referenzierten Klasseninstanz? Zum Beispiel Zugriff auf die initialNumberOfColumns
von einer Instanz Cookie
? Dann muss dieser Wert in einer anderen Klassenmemberfunktion verwendet werden, beispielsweise Game::Game()
, nachdem der Referenz-Accessor das Element der Cookie
-Klasse abgerufen hat.Zugreifen auf private Mitglieder über den Referenz-Accessor
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 ist, wo ich schwer habe. Ich weiß, ich brauche Cookie& Game::getCookie()
zu verwenden, aber ich bin nicht sicher, wie die privaten Mitglieder der Cookie
Klasse so zurückzukehren, dass sie in der Member-Funktion Game()
unten .:
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;
}
}
Wenn es kein privates Mitglied, sondern ein öffentliches, wissen Sie, wie das zu tun? Gute Nachrichten, die Rückkehr zu einem privaten Klassenmitglied funktioniert genau so. –
Ich glaube schon. Ich würde "Return-Cookie" richtig stellen?Aber das gibt mir nur das private Mitglied Cookie-Cookie der Klasse Spiel. Wie greife ich auf 'cookie.initialNumberOfRows' zu? – pstatix
@JohnnyMopp: außer es scheint nicht, dass 'Cookie' einen Getter für' initialNumberOfRows' hat. –