Russian Qt Forum

Программирование => С/C++ => Тема начата: OKTA от Апрель 23, 2014, 12:53



Название: Анонимный union
Отправлено: OKTA от Апрель 23, 2014, 12:53
ТОварищи, подскажите. Правильно ли я понимаю? Если в классе лежит анонимный union с несколькими полями, то мне надо делать несколько конструкторов для каждого из полей union?


Название: Re: Анонимный union
Отправлено: Igors от Апрель 23, 2014, 14:52
"union can't have non-trivial members" - ничего сложнее POD туда не поместить. А жаль (раньше можно было)


Название: Re: Анонимный union
Отправлено: OKTA от Апрель 23, 2014, 15:06
Имел ввиду другое - конструктор самого класса, чтобы инициализировать объекты в union, но проблема отпала.
Кстати QList разве простая структура? Сидит в union внутри класса и не жалуется.
Проблема другая появилась - инициализировать можно только один объект в union =(


Название: Re: Анонимный union
Отправлено: Igors от Апрель 23, 2014, 15:15
Имел ввиду другое - конструктор самого класса, чтобы инициализировать объекты в union, но проблема отпала.
Кстати QList разве простая структура? Сидит в union внутри класса и не жалуется.
Не сидит (то наверное "самым педантичным"  :) компилили). Указатель - пожалуйста

Проблема другая появилась - инициализировать можно только один объект в union =(
Да, и только первый


Название: Re: Анонимный union
Отправлено: m_ax от Апрель 23, 2014, 15:28
Имел ввиду другое - конструктор самого класса, чтобы инициализировать объекты в union, но проблема отпала.
Кстати QList разве простая структура? Сидит в union внутри класса и не жалуется.
Не сидит (то наверное "самым педантичным"  :) компилили). Указатель - пожалуйста

http://en.cppreference.com/w/cpp/language/union (http://en.cppreference.com/w/cpp/language/union)


Название: Re: Анонимный union
Отправлено: OKTA от Апрель 23, 2014, 15:30
Ваша правда, указатель - послеобеденная дрема сказывается  ;D
Ограничения на union думаю такие, потому что иначе это был бы крайне опасный инструмент - совсем просто испортить память.


Название: Re: Анонимный union
Отправлено: Old от Апрель 23, 2014, 15:33
http://en.cppreference.com/w/cpp/language/union (http://en.cppreference.com/w/cpp/language/union)
http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85#.D0.92_C.2B.2B11


Название: Re: Анонимный union
Отправлено: OKTA от Апрель 23, 2014, 15:37
Спасибо за ссылки, изучил  ;)