![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| KaraKum |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 640 Регистрация: 3.12.2007 Репутация: 1 Всего: 1 |
Доброе время суток.
Не пойму как компилится такая строчка: osg::ref_ptr<osg::Referenced> referenced = new osg::Referenced(); (используется библиотека OpenSceneGraph). Пытаюсь сымитировать такую же архитектуру следующим кодом:
При компиляции такая ошибка: ошибка: запрошено преобразование от ‘Lab*’ к нескалярному типу ‘LabTemplate<Lab>’ Ну а вот так, конечно, компилится:
Что я не так делаю? P.S. Вот 2 загаловочныx файлы из библиотеки osg, касающиеся этого примера: Присоединённый файл ( Кол-во скачиваний: 2 )
headers.tar 20,00 Kb |
||||
|
|||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Тебе нужно перегрузить operator() для объекта.
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
а может конструктор ? - LabTemplate(T*) .. Это сообщение отредактировал(а) mes - 21.3.2009, 12:23 |
|||
|
||||
| KaraKum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 640 Регистрация: 3.12.2007 Репутация: 1 Всего: 1 |
Какого объекта - LabTemplate или Lab?
Как переопределить и где он (этот оператор) должен вызываться? |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
в этом случае "=" это не операция присваивания, а инициализация, т.е запись альтернатива этой : LabTemplate<Lab> lab (new Lab); Это сообщение отредактировал(а) mes - 21.3.2009, 12:23 |
|||
|
||||
| KaraKum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 640 Регистрация: 3.12.2007 Репутация: 1 Всего: 1 |
Добавил ещё такой конструктор:
Такая же ошибка компиляции. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
ну так не туда добавили Это сообщение отредактировал(а) mes - 21.3.2009, 12:31 |
|||
|
||||
| KaraKum |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 640 Регистрация: 3.12.2007 Репутация: 1 Всего: 1 |
Точно! Теперь всё компилится
Кому интересно, код теперь выглядет вот так:
P.S. Незнание вот этого "тонкого" момента и вызвало проблему:
Спасибо за помощь! |
||||
|
|||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
mes, Да, и правда
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |