Visual Studio 2015 の「非標準構文。メンバーへのポインターを作成するには「&」を使用してください」エラーを解決する方法?

DDD
リリース: 2024-10-31 20:26:02
オリジナル
920 人が閲覧しました

How to Resolve

Visual Studio 2015 エラー C3867: 「非標準の構文。メンバーへのポインターを作成するには '&' を使用してください」

質問:

C で三目並べゲームを開発しようとすると、ユーザーはエラー C3867:「標準ではない構文。覚えておくポインタを作成するには '&' を使用してください」が発生しました。提案された解決策を試しても、エラーが継続します。どうすれば解決できますか?

答え:

エラー メッセージは、コードがアドレス演算子 (& を使用せずにメンバー関数名を使用しようとしている) を示しています。

非メンバー関数では、関数呼び出し構文を使用せずに関数名を式で直接使用できます。ただし、メンバー関数では、呼び出し構文なしでメンバー関数名を使用することは無効です。

メンバー関数へのポインターを取得するには、& 演算子を使用する必要があります。

<code class="c++">struct Bar {
   void baz() {}
};

&amp;Bar::baz;   // Valid</code>
ログイン後にコピー

適用この概念を提供されたコードに適用すると、player1Move 関数で問題が発生します:

<code class="c++">void TicTacToe::player1Move(string coordX) // ERROR
{
  cout << "Enter X: " << endl;
  cin >> coordX;
  _coordX = coordX;
}</code>
ログイン後にコピー

このコードでは、player1Move 関数は TicTacToe クラスのメンバー関数であり、関数名の使用によってエラーが発生します。 player1Move はアドレス演算子なしで移動します:

<code class="c++">Board.player1Move; // ERROR: Should be Board.player1Move() or &amp;Board.player1Move</code>
ログイン後にコピー

& 演算子を追加すると、コードはメンバー関数へのポインターを正しく作成します:

<code class="c++">void TicTacToe::player1Move(string coordX)
{
  cout << "Enter X: " << endl;
  cin >> coordX;
  _coordX = coordX;
}

Board.&amp;player1Move; // Valid pointer to member function</code>
ログイン後にコピー

以上がVisual Studio 2015 の「非標準構文。メンバーへのポインターを作成するには「&」を使用してください」エラーを解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!