|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.04.2013, 20:54 | #1 | |
Играюсь с Python
Форумчанин
Регистрация: 12.12.2012
Сообщений: 340
|
forward declaration ?
Чтобы инициализировать вектор2 другими векторами2/3/4 я перегрузил конструктор и написал выше структур форвард декларации чтобы компилятор знал что они есть. Но он все равно мне пишет что так - неверно, а как правильно?
Код:
Цитата:
|
|
09.04.2013, 21:01 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 09.04.2013 в 21:04. |
09.04.2013, 21:11 | #3 |
Играюсь с Python
Форумчанин
Регистрация: 12.12.2012
Сообщений: 340
|
Так в вашем варианте пропало преобразование с вектора4 в вектор2
вектор2 какой-то вектор(вектор4) Vector4 v4(1,2,3,4); Vector2 v2(v4) v2 = (1,2) |
09.04.2013, 21:18 | #4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Оно не пропало, просто вектор4 приводится к вектору2 "автоматически", т.к. является производным классом от вектора2.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
09.04.2013, 21:38 | #5 |
Играюсь с Python
Форумчанин
Регистрация: 12.12.2012
Сообщений: 340
|
Точно, извиняюсь. это преобразование благодаря наследаванию похоже.
А вектор4 в этом случае будет получен автоматически из вектора2 ? Vector2 v2(1,2); Vector4 v4(v2) v4 = (1, 2, 0, 0) У меня студия съела мой вариант с форвард декларациями, правда пришлось все тела ф-й прятать в cpp /. h Код:
Код:
|
09.04.2013, 21:49 | #6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Нет, вектор4 не может быть автоматически получен из вектора2. Для него Вы должны описать конструктор преобразования из вектора2 в вектор4.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
10.04.2013, 12:40 | #7 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
Мне кажется, наследование Vector3 от Vector2 как-то нематематично, ведь это скорее Vector2 - частный случай Vector3, где z == 0.
|
10.04.2013, 18:43 | #8 | |
Играюсь с Python
Форумчанин
Регистрация: 12.12.2012
Сообщений: 340
|
Цитата:
Код:
|
|
10.04.2013, 19:07 | #9 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Как правильно заинлайнить эти операторы ? Может мне их в описание структур переместить?
-- ага |
10.04.2013, 21:04 | #10 | |
Играюсь с Python
Форумчанин
Регистрация: 12.12.2012
Сообщений: 340
|
Посмотрел в дебаге дизассемблер похоже никакого инлайна нет.
Код вектора, как видите операторы в описании структуры. Код:
f += f * 2.0f; Дизассемблер. Код:
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с forward declaration | Theseus | Общие вопросы C/C++ | 0 | 02.01.2013 19:17 |
Мой браузер Forward | jekaz | Софт | 15 | 09.04.2010 19:45 |
Forward declaration из чужого namespace | futureteamleader | Общие вопросы C/C++ | 1 | 17.10.2009 04:46 |
[Pascal Error] test_component.pas(43): E2037 Declaration of 'MouseUp' differs from previous declaration | Altera | Компоненты Delphi | 3 | 10.03.2008 19:44 |