粗末な質問タイトルで申し訳ありません。
Visual C++2010で、includeを書かずにclass宣言を行おうとすると「Error:PCH警告」が発生します。
この理由をご教授ください。
IntelliSense: PCH 警告: 適切なヘッダー停止位置が見つかりません。
というエラーメッセージが表示されるのですが、これはプロトタイプ宣言がないときに発生する警告らしいですね。私が書こうとしているソースコードを次に示します。
-----main.cpp----
class TestClass {};
int main(void)
{
return (0);
}
-----------------
このソースで、"class"の部分に赤波線が引かれて先述のエラーメッセージが表示されます。
このソースの先頭に#include<iostream>なり#include<stdlib.h>なり何かインクルードを記述すると警告はなくなります。
しかしクラスはその枠のみですし、ライブラリ関数も何も使用していないのでとくに必要なインクルードファイルも何もないと思うのですが、どうしてこのようなエラーが発生するのでしょうか。
あと、蛇足になりますが、本来はクラス宣言部分を別のヘッダーファイルに分けたいのです。
クラス宣言部分を別のヘッダーに分離してヘッダーの先頭に
#pragma once
を記述するか、分離したヘッダをmain.cpp内でインクルードしてもエラーは解消されます。
(何からもインクルードされなかったらエラーになる)
もう何が何やらさっぱりわからないです><
No.3ベストアンサー
- 回答日時:
どうも、intellisenseの「仕様」のようです。
※ intellisenseは、入力時に候補を選ばせたりするやつです。
手許のVS2010で試したところ
#if 0
#endif
class TestClass {};
int main(void)
{
return (0);
}
という意味の無い#if~#endifを入れてもエラーは消えました。
「蛇足」部分について、検索したら同様のことがありました。
http://tanjoin.hatenablog.com/entry/20121213/135 …
VS自体の仕様だったんですね
知らないとドツボにはまってしまいますね…
私ははまってしまいました。
はじめは「なんでこんな単純なコードでエラーになるんだ。クラスの書き方が間違っているのか?」とずっと悩んでいました。
回答ありがとうございました。
No.2
- 回答日時:
プロジェクト・プロパティ 校正プロパティ C/C++ プリコンパイル済みヘッダ : プリコンパイル済みヘッダ を使用しない
ではどうですか?
回答ありがとうございます。
「プリコンパイル済ヘッダー」の欄は空欄でした。
下の「プリコンパイル済みヘッダー ファイル」の欄を空欄にしてみましたが、エラーは解消されませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# C言語のファイル入力が分かりません 2 2022/05/22 06:35
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- Java java final 1 2022/06/10 22:49
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- HTML・CSS インクルードした要素がヘッダーにかぶってしまう 3 2022/09/13 17:35
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- C言語・C++・C# メインプログラムに#include <algorithm>を書いて、 そのメインプログラムが // 3 2023/05/02 11:24
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
バッチからsqlplusの接続エラー...
-
適切な変換関数が存在しない???
-
Handlesについて
-
fortranでプログラムを実行する...
-
コンパイルできません。
-
sys/time.hのインクルードがで...
-
エラー: ‘inval’ の記憶サイズ...
-
エクセルでマクロを実行すると...
-
fatal error LNK1112
-
フォームの作成中にエラーが発...
-
ビルド失敗 指定されたファイ...
-
レコードセットをcloseする所で...
-
visual C++ でビルドの中止がで...
-
Excelのエラーで困ってます。
-
デバッグ中のエラーのことで教...
-
c言語をgcc.exeにコンパイルし...
-
MakeSureDirectoryPathExists
-
Fortran コンパイルエラーについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
Excelのエラーで困ってます。
-
バッチからsqlplusの接続エラー...
-
fortranでプログラムを実行する...
-
HEWを使用しているのですが、こ...
-
コンパイルできません。
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
BC30002: 型 'ListItem' が定義...
-
Handlesについて
-
sys/time.hのインクルードがで...
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
RightとLeft関数のライブ...
-
multiple definitionというエラー
-
WindowsからLinuxへの移植
-
HANDLEの宣言でのエラー
-
レコードセットをcloseする所で...
おすすめ情報