![]() |
|
Модераторы: bsa |
![]()
|
|
| mego4el |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.9.2010 Репутация: нет Всего: нет |
имеется следующий код, подскажите, как можно самым простым способом сделать преобразование типов? прочитал много разной теории и никак не могу понять на практике как это.:(
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
какие типы в какие ты не знаешь как преобразовывать?
Естественно, просто так нельзя преобразовать тип Vector к типу double. В тоже время, тип int к последнему вполне корректно автоматически может быть преобразован. Это сообщение отредактировал(а) bsa - 24.11.2011, 10:45 |
|||
|
||||
| mego4el |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.9.2010 Репутация: нет Всего: нет |
нужны преобразования:
в string, массив, float еще возник вопрос, как можно перегрузить унарный оператор, что бы он менял направление вектора? спасибо! Добавлено через 1 минуту и 35 секунд разумеется из пользовательского типа ( и обратно в него) |
|||
|
||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Преобразования чего? В массив чего? И как ты хочешь преобразовать массив double в число float?
Если ты про преобразование что-то во что-то, то для этого идеально подходит boost::lexical_cast. Если же ты не можешь использовать boost, то можешь сам его аналог написать:
|
||||
|
|||||
| newbee |
|
||||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 3 Всего: 19 |
Bsa злой, у bsa ПМС?))
mego4el, преобразование типов можно сделать двумя способами. Например преобразуем из типа A в тип B. Способ 1: в B создаем конструктор преобразования из A
Способ два: в A создаем оператор преобразования в B
-------------------- You're face to face With man who sold the world |
||||
|
|||||
| mego4el |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.9.2010 Репутация: нет Всего: нет |
да не важно чего, просто хочется понять как это делается, в массив чего угодно. я не знаю как, по этому и спрашиваю. мне сказал преподаватель что нужно преобразовать данный терхмерный вектор в string, float и массив. newbee, спасибо. я никак не могу найти материалов в интернете, что вообще представляет из себя "пользовательский" и "не пользовательский" тип, не могу разобраться с этими понятиями... |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Ты можешь преобразовать камаз в ящик апельсинов? Я лично нет... А чтобы делать подобное преобразование нужно знать зачем, что в итоге быть должно. Вот пока ты не расскажешь, что должно получиться после преобразования переменной типа double в массив типа int, например, то никто тебе и не расскажет, как это делать. Так как вариантов есть куча, и каждый конкретный для своего особого случая (в одном случае это количество ящиков, которые влезают в кузов, во втором - количество ящиков, необходимое для создания из апельсинов трехмерной модели камаза, в третьем - количество ящиков, для создания картины апельсинами, в четвертом - количество ящиков, которое теоретически может он увезти исходя из массы...).
пользовательский тип - это любой нестандартный тип (читай структура, объединение и класс). Стандартные: bool [[un]signed] char [[un]signed] [long|long long|short] int float [long] double все "не умные" указатели (void*, MyType *...) Надеюсь, я ничего не забыл. |
|||
|
||||
| baldina |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
1. как преобразовывать (математически) вектор во float пусть расскажет преподаватель, мы не поняли 2. в string видимо имеется в виду создать некое (похоже, произвольное) текстовое представления вектора например, вектор Vector v(x,y,z) может быть представлен строкой "(x,y,z)". тогда функция преобразования выглядит так
можно std::string toString () const переименовать в operator std::string() const, тогда можно делать такие вызовы:
3. в массив (точнее - в указатель на double, указывающий на начало мсассива) - совсем просто, т.к. представление вектора и есть массив:
|
||||||||
|
|||||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
а о том ли векторе Вы говорите, которй нужен тс |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
про ето знает только препод, но подозреваю что вероятность высока |
|||
|
||||
| mego4el |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.9.2010 Репутация: нет Всего: нет |
подскажите пожалуйста, что не так? преобразование в строку не работает(, и как можно сделать аналогичную реализацию только не в string а в *char ? и как вообще реализуется преобразование обратно? (из чара обратно в мой вектор), так же интересует тот же вопрос по поводу преобразования вектора в массив и(или) флоат и назад в вектор.. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
mego4el, чукча не читатель, чукча - писатель
Ответь на вопросы, которые тебе были заданы. После этого мы ответим на твои. Если ты не понял вопросы, то приведи примеры исходных данных и результатов. А так же формулы. Запомни, вектор невозможно преобразовать к числу, не зная что под этим числом подразумевается (есть вектор скорости, и не понятно, тебе нужна ее проекция на X, Y или Z, а может вообще модуль?). Преобразовать к строке тоже самое. Ты хочешь увидеть координаты или модуль или что вообще? Тоже самое и про массив... Если тебе необходимо просто получить строку в виде (x,y,z), то нет ничего проще - убери слово Vector из строки 72 и раскомментируй. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |