Что такое Elaborated Type Specifier? |
![]() |
Добавил(а) microsin |
Перевод этого термина - уточненный (или конкретизированный) спецификатор типа. Это имя (идентификатор), перед которым стоят ключевые слова class, struct, enum или union. class MyClass; struct MyStruct; enum MyEnum; union MyUnion; Конкретизированный спецификатор типа используется или для акцента, или чтобы показать имя типа, которое было скрыто декларацией переменной с таким же именем и такой же областью видимости. Следующий оператор декларирует идентификатор Window как имя класса. Этот синтаксис используется для предварительного декларирования (forward declaration) классов. Для дополнительной информации по именам классов см. [2]. class Window; Если имя декларируется с ключевым словом union, оно также должно быть определено с ключевым словом union. Имена, которые определены с ключевым словом class, могут быть декларированы с ключевым словом struct (обратное тоже справедливо). Таким образом, следующие примеры легальны: // elaborated_type_specifiers1.cpp struct A; // Forward declaration A.
// elaborated_type_specifiers2.cpp class A; // Forward declaration A
// elaborated_type_specifiers3.cpp union A; // Forward declaration A // elaborated_type_specifiers4.cpp union A; // Forward declaration A. struct A { // C2011 int i; };
// elaborated_type_specifiers5.cpp union A; // Forward declaration A. class A { // C2011 public: int i; };
// elaborated_type_specifiers6.cpp struct A; // Forward declaration A. union A { // C2011 int i; char ch[2]; }; [Ссылки] 1. Elaborated Type Specifiers site:msdn.microsoft.com.
|