詳しく説明する型指定子
合成型指定子のいずれかで始まる型名には、 class、 struct、 enum、またはunionキーワードします。
class identifier
struct identifier
enum identifier
union identifier
解説
いずれかの強調、または同じスコープ内で同じ名前を持つ変数の宣言によって隠ぺいされる型の名前を表示するには、合成型指定子が使用されます。
次の文を宣言、 Window 、クラス名としての識別子。この構文は、クラスの前方宣言は使用されます。クラス名の詳細についてを参照してくださいクラス名。
class Window;
使用して、名前が宣言されている場合、 和 キーワードを使用しても定義する必要があります、 和キーワード。使用して定義されている名前、 クラスを使用して、キーワードを宣言できます、 structキーワード (その逆)。したがって、次のサンプル コードは法的です。
使用例
// elaborated_type_specifiers1.cpp
struct A; // Forward declaration of A.
class A // Define A.
{
public:
int i;
};
int main()
{
}
// elaborated_type_specifiers2.cpp
class A; // Forward declaration of A
struct A
{
private:
int i;
};
int main()
{
}
// elaborated_type_specifiers3.cpp
union A; // Forward declaration of A
union A
{
int i;
char ch[2];
};
int main()
{
}
次の例では、ただし、法律ではありません。
// elaborated_type_specifiers4.cpp
union A; // Forward declaration of A.
struct A
{ // C2011
int i;
};
// elaborated_type_specifiers5.cpp
union A; // Forward declaration of A.
class A
{ // C2011
public:
int i;
};
// elaborated_type_specifiers6.cpp
struct A; // Forward declaration of A.
union A
{ // C2011
int i;
char ch[2];
};