[解決済み] Visual Studio 2015 "非標準の構文。'&' を使用してメンバーへのポインターを作成する"
2022-02-12 07:58:12
質問
C++を勉強していて、三目並べの小さなゲームを作ろうと思っています。しかし、私はC3867、非標準の構文が表示され続けます。
これは私のTicTacToe.hです。
#pragma once
#include <iostream>
using namespace std;
class TicTacToe
{
public:
TicTacToe();
string getName1();
string getName2();
void printBoard();
void clearBoard();
void setName1(string player1Name);
void setName2(string player2Name);
void setSign1(string player1Sign);
void setSign2(string player2Sign, string player1Sign);
void playGame(string player1Name, string player2Name,string player1Sign,string player2Sign);
void player1Move(string coordX);
void player1Turn();
void player2Turn();
private:
char Board[3][3];
string _player1Name;
string _player2Name;
string _player1Sign;
string _player2Sign;
string _coordX;
string _coordY;
};
そして、これが私のTicTacToe.cppです。
#include "TicTacToe.h"
#include <iostream>
#include <string>
TicTacToe::TicTacToe() {}
void TicTacToe::playGame(string player1Name, string player2Name,
string player1Sign, string player2Sign) {
TicTacToe Board;
Board.setName1(player1Name);
Board.setSign1(player1Sign);
Board.setName2(player2Name);
Board.setSign2(player1Sign, player2Sign);
Board.clearBoard();
Board.printBoard();
}
void TicTacToe::printBoard() {
cout << " |1|2|3|\n";
for (int i = 0; i < 3; i++) {
cout << "--------\n";
cout << i + 1 << "|" << Board[i][0] << "|" << Board[i][1] << "|"
<< Board[i][2] << "|" << endl;
}
}
void TicTacToe::clearBoard() {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
Board[i][j] = ' ';
}
}
}
void TicTacToe::setName1(string player1Name) {
cout << "Enter your name, player 1: \n";
cin >> player1Name;
_player1Name = player1Name;
}
void TicTacToe::setName2(string player2Name) {
cout << "Enter your name, player 2: \n";
cin >> player2Name;
_player2Name = player2Name;
}
string TicTacToe::getName1() { return _player1Name; }
string TicTacToe::getName2() { return _player2Name; }
void TicTacToe::setSign1(string player1Sign) {
cout << "What will you sign be?(X/O)\n";
cin >> player1Sign;
if (player1Sign != "X" && player1Sign != "O" && player1Sign != "x" &&
player1Sign != "o") {
cout << "Invalid input, try again.\n";
cin >> player1Sign;
}
_player1Sign = player1Sign;
}
void TicTacToe::setSign2(string player2Sign, string player1Sign) {
cout << "What will you sign be?(X/O)\n";
cin >> player2Sign;
if (player2Sign != "X" && player2Sign != "O" && player2Sign != "x" &&
player2Sign != "o" ||
player2Sign == player1Sign) {
cout << "Invalid input, try again.\n";
cin >> player2Sign;
}
_player2Sign = player2Sign;
}
void TicTacToe::player1Move(string coordX) // ERROR
{
cout << "Enter X: " << endl;
cin >> coordX;
_coordX = coordX;
}
void TicTacToe::player1Turn() {
cout << "Player 1 turn !\n";
TicTacToe Board;
Board.player1Move;
}
void TicTacToe::player2Turn() {
cout << "Player 2 turn !\n";
TicTacToe Board;
Board.player1Move;
}
このエラーについて、他の質問にあることはすべて試しましたが、うまくいきませんでした。このエラーはどのように修正するのですか?
解決方法を教えてください。
問題は、以下の内容を含む行です(あなたのコードでは2回出現します)。
Board.player1Move;
プレイヤー1の手は、std::stringパラメータを入力として受け取る関数です。これを呼び出すには、std::stringオブジェクトを作成して、それを関数の引数として渡す必要があります。文字列を入力として与えたい場合は、次のような構文を使用できます。
std::string move;
cin >> move;
Board.player1Move(move);
また、player2TurnはBoard.player1Moveの代わりにBoard.player2Moveを呼び出す必要があることに注意してください。
関連
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み] Visual Studio 2015 の .vs フォルダをソースコントロールに追加した方が良いですか?
-
[解決済み】Visual Studio 2010でBoostを使用する方法
-
[解決済み】Visual Studio 2015の追加デバッグオプションの無効化
-
[解決済み】visual studio 2015 vshubがfiddlerをスパミングしています。
-
[解決済み】Visual Studio 2015 Database Projectディレクトリに拡張子jfmのファイルが存在する。
-
[解決済み] Visual Studio 2015 が非常に遅い
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み] 解決済み] `pthread_create' への未定義の参照 [重複] [重複
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較