Объявление полей внутри класса

Объявление поля внутри класса производится аналогично объявлению обычной переменной, только перед типом данных нельзя указывать спецификатор хранения. Присвоить или получить значение поля можно через экземпляр класса с помощью точечной нотации:

<Объект>.<Название поля> = <Значение>;
<Значение> = <Объект>.<Название поля>;

Пример:

Point point;
point.x = 10;
point.y = 40;
std::cout << point.x << std::endl; // 10
std::cout << point.y << std::endl; // 40

Мы можем создать множество экземпляров класса Point, и каждый экземпляр будет иметь свои собственные значения полей x и y, не зависящие от других экземпляров:

Point point;
Point point2;
point.x = 10;
point.y = 20;
point2.x = 30;
point2.y = 40;
std::cout << point.x << ' ' << point.y << std::endl;   // 10 20
std::cout << point2.x << ' ' << point2.y << std::endl; // 30 40

Начиная со стандарта C++11, полям (кроме статических) можно присвоить начальные значения явным образом при объявлении, указав их после оператора = или внутри фигурных скобок:

class Point {
public:
   int x = 0;
   int y{0};
};

В языке C++ структуры имеют функционал, аналогичный классам. Единственное отличие состоит в том, что доступ к членам структуры по умолчанию является общедоступным, а доступ к членам класса по умолчанию является закрытым. И в том и другом случае поведение по умолчанию можно изменить. Объявление структуры Point выглядит так:

struct Point { // Объявление структуры и переменной
   int x;
   int y;
} point;

Так же как и в структурах внутри класса допускается использование битовых полей. Битовые поля предоставляют доступ к отдельным битам, позволяя тем самым хранить в одной переменной несколько значений, занимающих указанное количество бит. Объявление битового поля имеет следующий формат:

<Тип данных> [<Название поля>]:<Длина в битах>;

В одном классе можно использовать одновременно битовые поля и обычные поля. Обратите внимание на то, что название битового поля можно не указывать, кроме того, если длина поля составляет один бит, то перед названием поля следует указать ключевое слово unsigned. Пример объявления класса с битовыми полями:

class Status {
public:
   unsigned :3;
   unsigned a:1;
   unsigned b:1;
   unsigned c:1;
} status;

Доступ к битовому полю осуществляется так же как и к полю класса:

status.a = 1;
status.b = 0;
status.c = 1;

Учебник C++ (MinGW-W64)
Учебник C++ (MinGW-W64) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов