Elaborated türü belirteçleri
Elaborated türü belirticisi tarafından öncesinde bir tür adı olan class, struct, enum, veya union anahtar sözcüğü.
class identifier
struct identifier
enum identifier
union identifier
Notlar
Elaborated türü belirticisi vurgu veya aynı kapsamda aynı adla bir değişken bildirimi gizli bir tür adı ortaya çıkarmak için kullanılır.
Aşağıdaki ifade bildirir Window sınıf adı tanımlayıcı.Bu sözdizimi, ileriye doğru sınıf bildirimi için kullanılır.Sınıf adları hakkında daha fazla bilgi için bkz: Sınıf adları.
class Window;
Bir ad kullanarak bildirirseniz Birliği anahtar sözcüğü kullanılarak da tanımlanmalıdır Birliği anahtar sözcüğü.Kullanılarak tanımlanan adları sınıfı anahtar sözcüğünü kullanarak bildirilebilir struct anahtar sözcük (veya tersi).Bu nedenle, yasal aşağıdaki kod örnekleri şunlardır:
Örnek
// 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()
{
}
Aşağıdaki örnekler, ancak geçersiz:
// 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];
};