М
Маша С++
@masha_cpp107 подп.
355просмотров
15 июня 2025 г.
Score: 391
Объединения (union-ы) позволяют хранить данные разных типов в одной области памяти. Пример: #include <iostream> union IPv4Address { uint32_t i; uint8_t c[4]; }; int main(int argc, char* argv<::>) { IPv4Address a; memset(&a, 0, sizeof(a)); a.c[0] = 10; a.c[1] = 0; a.c[2] = 0; a.c[3] = 1; std::cout << (int)a.c[0] << std::endl; std::cout << a.i << std::endl; // don't do this, just an example return 0; } Но можно ли наследовать union? Давайте попробуем: struct IPv4AddressWithPort : IPv4Address { uint16_t port = 0; }; Получим ошибку компиляции: enum/union cannot be used as a base class Объединения нельзя использовать как базовый класс. Напишите в комментариях, кто знает почему)
355
просмотров
740
символов
Нет
эмодзи
Нет
медиа

Другие посты @masha_cpp

Все посты канала →