Как строку использовать в объединении?
Если написать так:
union
{
string s;
double v;
};
То на что-то жалуется. Как можно организовать такое объединение?
P.S. Есть мысль, что объединения в С++ - это вообще зло.
char str[10];
double v;
}my_union;
дык есть мнение что "как-то тоак" представляет... или вообще никак :D
char str[10];
double v;
}my_union;
вопрос на засыпку. а зачем такое уродство нужно? ну компилятор, допустим, это схавает. но смысл этого?
как зачем, получим обединение занимающее область памяти в 10 байт. что и требовалось чило v и массив символов str он же срока.
Хорошо. Ты потратишь (если все таки сумеешь обмануть компилятор) 10 байт, там где рисковал было потратить 18. И зачем? Для чего ты планируешь использовать такую сущность практически, в какой сверхмеморикритичной области? Я не совсем понял, ты планируешь преобразования из символов в числа, и думаешь, что такой способ поможет? Твое дело, конечно, но лучше дал бы задачу более обще, что ты собираешься делать, а не просил помощи в конкретной сомнительной со всех точек зрения реализации. Возможно, существует намного более простое решение.
дык, это.. я и не просил помощи.. )) вроде атор темы Нео.. Да и вобще чем массив символов то Вам не угодил.. Это по сути дела таже строка, работать с ним учень удобно и просто. опять же имхо..
powt.63kvv, тебе люди пытаются объяснить на кой фиг выделять область памяти под число двойной точности и строку(ну иль как ты сделал массив символов, что ясен ясень одно и тоже). Нет смысла! :D
А нужно это для того, чтобы использовать массив данных, каждый элемент которого является либо числом, либо строкой.
char [ ];
double v;
} array[ ];
Или альтернатива массив указателей, каждый из которых будет указывать на определённый тип данных.
С десять раз прочитал твою строчку и никак не вникну, толь я туплю толи чё, зачём тебе плавающее число двойной точности и как его альтернатива строка???
А нужно это для того, чтобы использовать массив данных, каждый элемент которого является либо числом, либо строкой.
Для чего такое может понадобиться?
У тебя явная ошибка в подходе к решению задачи.
Массив даже не по своим возможностям, а по логике вещей, не может содержать объекты не родственные, у которых нет чего-то общего.
Что объединяет твои числа и строки? Как ты собираешься использовать этот массив?
char [ ];
double v;
} array[ ];
Плохо. Не ясно какое поле валидно.
Или альтернатива массив указателей, каждый из которых будет указывать на определённый тип данных.
Ещё хуже. Указатели на различные типы в один массив не засунешь.
Я и не собирался тут прогу писать, просто набросал шаблон.
Я совершенно сам не понял зачем аффтору такая пара в программе?! Какой-то явно неправильный подход. :)
Согласен, сморозил тупость! Просто после прочтения строк аффтора поста, голова закружилась)))) :D