エラー: コンストラクタ、デストラクタ、または '.' トークンの前に型変換が必要です。
2022-02-14 08:42:29
最近のプロジェクトで、error: expected constructor, destructor, or type conversion before '. tokenというエラーが出たのですが、ようやく原因がわかりました。
<スパン C++では、グローバルスレッショルドは変数の宣言と初期化にのみ使用でき、代入、操作、関数呼び出しなどには使用できません!
初期化・代入について。(質問してくれたmonsionさんに感謝)
<スパン
初期化された変数の説明のため。
プログラム中の変数は複数回宣言できますが、定義は一度だけです。
なぜなら、定義だけがストレージを割り当て、初期化は初期化するためのストレージを持たなければならないからです。
宣言にイニシャライザがある場合は、定義として扱うことができる。
代入の理解のために:代入は演算であり、代入の等号は右から左への演算であり、グローバル変数には使用できない。
<スパン
分かりやすいかどうか分かりませんが、遠慮なくどんどん話してくださいね。
<スパン
私のプログラムでは、いくつかのグローバル変数を定義しています。
定義されたbool変数 aiml_load = aimlLoad(); の後に aiml_load = true という文を追加すると、タイトルのようにエラーが報告されるので、これを削除するとコンパイルできるようになります。この例は必ずしも適切ではありませんが、原理は同じです。エラーに遭遇した時に詳しく文書化しなかったことを後悔しているが、今はこのように生々しい例を挙げるしかない。
関連
-
error: '.' トークンの前に未修飾の ID が必要です。
-
std::logic_error' のインスタンスを投げた後に呼び出された実行エラー終了 what(): basic_string::_S_const
-
c++11の機能を含むcmakeの書き方 (-std=c++11 cmakeList.txtに書き込む方法)
-
sort(...)」への呼び出しに対応する関数がない、エラー
-
stoi' の解決策は、Dev-c++ のこのスコープで宣言されていません。
-
EclipseのC++コードでシンボル'std'が解決できない問題の解決
-
C++テンプレートテンプレート使用法まとめ
-
c/c++の "undefined reference to "の解決法
-
C++エラー:不明な型名
-
エラー: "" から非スカラー型 "" への変換
最新
-
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++ プログラミング プロンプトの関数定義はここでは許可されません。
-
C++11での移動セマンティクス(std::move)と完全な前進(std::forward)。
-
戦闘機ゲームのC++実装(ソースコード)
-
C++がpythonを呼び出す
-
vs2015 はソースファイル stdio.h を見つけることができない 解決策
-
const char*' から 'char*' への変換が無効です。
-
ISO C++ではポインタと整数の比較は禁止されています[-fpermissive]。
-
c++のエラー: エラーC2601: 'main' : ローカル関数定義が不正
-
ベクター使用時、ベクター添え字が範囲外、その他類似のエラーが発生する。
-
ベクトル添え字が範囲外のコンテナの使用、その他類似のエラー