| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > Как разложить anonymous union и struct? |
| Автор: WaNdeR 12.12.2004, 10:54 |
| Есть задача, перенести программу с Винды на Линух. и никак не могу разделать следующую вещь: class vec { ..... ..... public: union { float v[3]; struct {float x,y,z;}; }; }; class qu { ..... ..... public: union { float q[4]; struct {float x,y,z,w;}; struct {vec v; float w;}; }; }; на все это компилятор g++ ругается: vec.h:667: warning: ISO C++ prohibits anonymous structs vec.h:667: member vec qu::<anonymous union>::<anonymous struct>::v' with constructor not allowed in anonymous aggregate vec.h:667: member vec qu::<anonymous union>::<anonymous struct>::v' with copy assignment operator not allowed in anonymous aggregate vec.h:667: declaration of `float qu::<anonymous union>::<anonymous struct>::w' vec.h:666: conflicts with previous declaration `float qu::<anonymous union>::<anonymous struct>::w' vec.h:667: duplicate member `qu::<anonymous union>::<anonymous struct>::w' vec.h:667: member `vec qu::<anonymous union>::<anonymous struct>::v' with constructor not allowed in union vec.h:667: member `vec qu::<anonymous union>::<anonymous struct>::v' with copy assignment operator not allowed in union Может кто уже встречался с подобной задачей.... очень надо найти решение. |
| Автор: Mad 12.12.2004, 12:30 | ||
надо
и соответственно подправить обращения |
| Автор: WaNdeR 12.12.2004, 23:37 |
| А если у меня там переопределены арифметические функции, в классе? да и там получается, что вкладки по классам трех четырех уровней. Сильно запутанно Больше ничего нельзя придумать чтобы заставить его работать? а то там столько изменений.... |
| Автор: Hroft 24.12.2004, 15:23 | ||
| Объединение в public... кошмар. А как ты вообще собирался обращаться к членам этих объединений? И что значит
|