• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:include無しにclassが書けない)

include無しにclassが書けない

このQ&Aのポイント
  • Visual C++2010で、includeを書かずにclass宣言を行おうとすると「Error:PCH警告」が発生します。
  • このエラーメッセージは、プロトタイプ宣言がないときに発生します。
  • クラス宣言部分を別のヘッダーファイルに分けたい場合は、ヘッダーファイルに#pragma onceを記述するか、main.cpp内でインクルードする必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

どうも、intellisenseの「仕様」のようです。 ※ intellisenseは、入力時に候補を選ばせたりするやつです。 手許のVS2010で試したところ #if 0 #endif class TestClass {}; int main(void) { return (0); } という意味の無い#if~#endifを入れてもエラーは消えました。 「蛇足」部分について、検索したら同様のことがありました。 http://tanjoin.hatenablog.com/entry/20121213/1355382807

marriess
質問者

お礼

VS自体の仕様だったんですね 知らないとドツボにはまってしまいますね… 私ははまってしまいました。 はじめは「なんでこんな単純なコードでエラーになるんだ。クラスの書き方が間違っているのか?」とずっと悩んでいました。 回答ありがとうございました。

その他の回答 (2)

回答No.2

プロジェクト・プロパティ 校正プロパティ C/C++ プリコンパイル済みヘッダ : プリコンパイル済みヘッダ を使用しない ではどうですか?

marriess
質問者

お礼

回答ありがとうございます。 「プリコンパイル済ヘッダー」の欄は空欄でした。 下の「プリコンパイル済みヘッダー ファイル」の欄を空欄にしてみましたが、エラーは解消されませんでした。

回答No.1

そのエラーは、mainにプロトタイプ宣言が無いから発生している。 int main(void); //mainをプロトタイプ宣言しておく int main(void) //必ずプロトタイプ宣言しておいてから実体を定義する { return (0); } これで解決する。

marriess
質問者

お礼

回答ありがとうございます。 残念ながら、メインルーチンのプロトタイプを宣言してはみましたが、エラーは解消しませんでした。

関連するQ&A