私が書いた
#ifndef Header1.h
#define Header1.h
class Complex
{
[...]
};
#endif
私のプロジェクト (Visual Studio 2010) でエラー C2008: '.' が表示されます。: マクロ定義では予期されていません。「Header1.h」の何が問題なのか、どう直せばいいのかわからない。
を使用しないでください。代わりに _ を使用してください
#ifndef HEADER1_H
#define HEADER1_H
class Complex
{
[...]
};
#endif
ここで識別子を使用する必要があります。
#ifndef Header1.h
^^^^^^^^^
それらはそれらに含めることができません.
。これは、ドラフト C++ 標準セクションの16
前処理ディレクティブの段落1からわかります。これには、次の文法が含まれています。
# ifdef identifier new-line groupopt
^^^^^^^^^^
# ifndef identifier new-line groupopt
^^^^^^^^^^
通常、ガードにはすべて大文字とアンダースコアが含まれます。
#ifndef HEADER1_H
マクロ名にピリオドを含めることはできません。Header1
またはに名前を変更しHeader1h
ます。
余談ですが、ほとんどのマクロは ALL_UPPERCASE が標準です。
マクロ名にドットを含めないでください。使った方がいい
#ifndef HEADER1_H
#define HEADER1_H
...
#endif