struct (C++)
Ключевое слово struct
определяет тип структуры и (или) переменную типа структуры.
Синтаксис
[template-spec] struct [ms-decl-spec] [tag [: base-list ]]
{
member-list
} [declarators];
[struct] tag declarators;
Параметры
спецификация шаблона
Необязательные спецификации шаблона. Дополнительные сведения см. в спецификациях шаблонов.
struct
ключевое слово struct
;
ms-decl-spec
Необязательная спецификация класса хранения. Дополнительные сведения см. в __declspec ключевое слово.
tag
Имя типа, присваиваемое структуре. Тег становится зарезервированным ключевым словом в области структуры. Тег является необязательным. Если он опущен, определяется анонимная структура. Дополнительные сведения см. в разделе "Типы анонимных классов".
base-list
Необязательный список классов или структур, из которых эта структура будет наследовать члены. Дополнительные сведения см. в разделе "Базовые классы ". Перед каждым базовым классом или именем структуры может предшествовать описатель доступа (общедоступный, частный, защищенный) и виртуальный ключевое слово. Дополнительные сведения см. в таблице доступа к члену в разделе "Управление доступом к членам класса".
список участников
Список членов структуры. Дополнительные сведения см. в обзоре члена класса. Единственное различие здесь заключается в том, что struct
используется вместо class
.
declarators
Список декларатора, указывающий имена структуры. В списках деклараторов объявляются один или несколько экземпляров типа структуры. Деклараторы могут включать списки инициализаторов, если все элементы данных структуры public
. Списки инициализаторов распространены в структурах, так как члены данных по public
умолчанию. Дополнительные сведения см. в обзоре деклараторов .
Замечания
Тип структуры — это пользовательский составной тип. Он состоит из полей или членов, которые могут иметь разные типы.
В C++структура совпадает с классом, за исключением того, что его члены по public
умолчанию.
Сведения об управляемых классах и структурых в C++/CLI см. в разделе "Классы и структуры".
Использование структуры
В C необходимо явно использовать struct
ключевое слово для объявления структуры. В C++не требуется использовать struct
ключевое слово после определения типа.
Если тип структуры определен путем размещения одной или нескольких разделенных запятыми имен переменных между закрывающей фигурной скобкой и точкой с запятой, имеется возможность объявления переменных.
Переменные структуры можно инициализировать. Инициализация каждой переменной должна быть заключена в скобки.
Дополнительные сведения см. в разделе "Класс", "Объединение" и "Перечисление".
Пример
#include <iostream>
using namespace std;
struct PERSON { // Declare PERSON struct type
int age; // Declare member types
long ss;
float weight;
char name[25];
} family_member; // Define object of type PERSON
struct CELL { // Declare CELL bit field
unsigned short character : 8; // 00000000 ????????
unsigned short foreground : 3; // 00000??? 00000000
unsigned short intensity : 1; // 0000?000 00000000
unsigned short background : 3; // 0???0000 00000000
unsigned short blink : 1; // ?0000000 00000000
} screen[25][80]; // Array of bit fields
int main() {
struct PERSON sister; // C style structure declaration
PERSON brother; // C++ style structure declaration
sister.age = 13; // assign values to members
brother.age = 7;
cout << "sister.age = " << sister.age << '\n';
cout << "brother.age = " << brother.age << '\n';
CELL my_cell;
my_cell.character = 1;
cout << "my_cell.character = " << my_cell.character;
}
// Output:
// sister.age = 13
// brother.age = 7
// my_cell.character = 1
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по