Определение объединения C ++

Можно ли определить объединение, как мы можем сделать для именованного пространства имен? Я имею в виду, можем ли мы объявить первый тип в объединении, а затем в другом файле добавить еще один тип в объединение?

На данный момент у меня есть базовый класс, который содержит объединение битовых типов (unsigned int и другие, которые соответствуют каждому производному классу). Я хотел бы разделить их на производный класс и построить постепенно это объединение.

0

Решение

Нет, например, для structs/classes, enums,

N3337 7.3 / 1


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

4

Другие решения

Нет. Как это можно заставить работать (не то, чтобы это желательно), с
отдельная подборка. Рассмотрим что-то вроде:

union U { int i; double d; }

void
f()
{
U aU;
g( &aU );
//  ...
}

Сколько места выделено компилятору в стеке для aU,
Учитывая, что DLL еще не написана содержит:

union U { char buff[1000]; };

void
g( U* aU )
{
//  Use all 1000 bytes...
}

(Обратите внимание, что согласно стандарту вышеупомянутое поведение не определено.
То, что вы спрашиваете, потребовало бы, чтобы это работало.)

1

По вопросам рекламы [email protected]