|
19 / 19 / 1
Регистрация: 12.08.2011
Сообщений: 59
|
|||||||||||||||||||||
Проблема наследования от шаблонного класса.31.08.2011, 02:13. Показов 13123. Ответов 17
Метки нет (Все метки)
Привет всем!
У меня есть шаблонный класс, и наследуемый от него шаблонный класс. Базовый:
error C2143: синтаксическая ошибка: отсутствие "," перед "<" в строке
0
|
|||||||||||||||||||||
| 31.08.2011, 02:13 | |
|
Ответы с готовыми решениями:
17
Как корректно передать в метод шаблонного класса объект шаблонного класса в качестве параметра? Вызов метода у шаблонного поля, шаблонного класса
|
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||||||
| 31.08.2011, 02:28 | ||||||
|
Похоже на неправильный порядок объявления классов.
В первом файле (ну, по-крайней мере по тому куску кода, что есть) подключать "Lgraph.h" и "Mgraph.h" ни к чему. там достаточно предварительного объявления шаблонов:
1
|
||||||
|
19 / 19 / 1
Регистрация: 12.08.2011
Сообщений: 59
|
|
| 31.08.2011, 02:33 [ТС] | |
|
Теперь появляются 4 ошибки такого вида
error LNK2028: ссылка на неразрешенную лексему (0A000010) "public: virtual class Edge<class Vertex<int,int>,int> * __clrcall lgraph<class Edge<class Vertex<int,int>,int> >::g_insert_edge(class Edge<class Vertex<int,int>,int> *)" (?g_insert_edge@?$lgraph@V?$Edge@V?$Vert ex@HH@@H@@@@$$FUAMPAV?$Edge@V?$Vertex@HH @@H@@PAV2@@Z) в функции "void __clrcall `dynamic initializer for 'const lgraph<class Edge<class Vertex<int,int>,int> >::`vftable'''(void)" (???__E??_7?$lgraph@V?$Edge@V?$Vertex@HH @@H@@@@6B@@@YMXXZ@?A0x0f4d3fa0@@$$FYMXXZ ) (((
0
|
|
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||||||
| 31.08.2011, 02:41 | ||||||
|
Это уже ошибки компоновщика, то есть програма уже компилируется.
В классе lgraph объявлена виртуальная функция g_insert_edge, но определения её нигде нет. И я не уверен, что в базовом классе деструктор стоит делать чистым. Я бы его просто виртуальным сделал, с пустым телом:
В общем, в любом случае, будет ли деструктор в базовом классе "чистой" функцией или нет, его обязательно надо определить.
1
|
||||||
|
19 / 19 / 1
Регистрация: 12.08.2011
Сообщений: 59
|
|
| 31.08.2011, 02:44 [ТС] | |
|
Огромное спасибо, все вышеописанное помогло!
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 31.08.2011, 09:04 | ||
|
0
|
||
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 31.08.2011, 16:53 | |
|
деструктор то как раз наследуется,
не наследуются конструкторы и оператор = по-моему .
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 31.08.2011, 19:42 | |
|
0
|
|
|
13 / 13 / 2
Регистрация: 11.02.2011
Сообщений: 55
|
||
| 01.09.2011, 09:42 | ||
|
0
|
||
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 01.09.2011, 11:25 | |
|
Alex1234, а што такова?
Mr.X, problem officer? пс: как тут картинки прикреплять?
0
|
|
|
Заблокирован
|
|
| 01.09.2011, 11:35 | |
|
наследуется виртуальность\невиртуальность. Деструктор по умолчанию - невиртуальный. Сами деструкторы не наследуются.
0
|
|
|
13 / 13 / 2
Регистрация: 11.02.2011
Сообщений: 55
|
|
| 01.09.2011, 12:35 | |
|
Извините если кого задел. Вот все что я думаю:
Каждый производный класс при своем уничтожении вызывает деструктор базового класса. Если деструктор базового класса объявляется виртуальным, то и все деструкторы последующих производных классов будут виртуальными. Более того деструктор базового класса может быть чисто виртуальной функцией. Но при этом в отличии от обычных чисто виртуальных функций чисто виртуальный деструктор всегда должен иметь определение, так как деструкторы производных классов неявно вызывают деструктор базового класса. Ключевое слово virtual можно опускать для виртуальных функций, унаследованных от базового класса, в производных классах. Может чего и упустил. Фразы вида "Деструкторы не наследуются" выносят мозг.
0
|
|
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|||||
| 01.09.2011, 13:21 | |||||
|
LosAngeles, не очень понял к чему это?
деструктор по моему такая обычная функция как и все и наследуется, т.к её можно явно вызвать из производного класса * Alex1234, всё норм. ![]() по вопросам отмеченным звездой хотелось бы услышать мнение эксперта, т.к сам плохо разбераюсь в сабже. желательно с ссылкой на авторитетный источник. спасибо.
0
|
|||||
|
13 / 13 / 2
Регистрация: 11.02.2011
Сообщений: 55
|
||||||||||||
| 01.09.2011, 13:49 | ||||||||||||
|
> где-то читал подобное, но толковых примеров не видел. примерчик можно? *
Нет, если в каком нибудь классе метод был виртуальным, таковым он будет и в производных, модификатор virtual стоит указывать явно, чтоб не вводить никого в заблуждение. > так вы всё таки на стороне зла или добра? ![]() Кода нибудь я познаю светлую сторону силы. Добавлено через 18 минут Мда, выражение "Деструкторы не наследуются" присутствует в литераторе, наверно это мои личные проблемы, ну да фиг с ним.
1
|
||||||||||||
|
Заблокирован
|
||||
| 01.09.2011, 13:51 | ||||
|
3242
1
|
||||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||
| 01.09.2011, 13:55 | ||
|
0
|
||
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
||
| 01.09.2011, 15:12 | ||
|
Alex1234, ага
LosAngeles, спасибо, ну что касается фразы "...так как деструкторы производных классов неявно вызывают деструктор базового класса." это случайно попало в цитату
1
|
||
|
13 / 13 / 2
Регистрация: 11.02.2011
Сообщений: 55
|
|
| 01.09.2011, 15:38 | |
|
Ну, не сосем случайно, а как без неё?
0
|
|
| 01.09.2011, 15:38 | |
|
Помогаю со студенческими работами здесь
18
Возможно ли создание объекта шаблонного класса в функции этого класса?
Partial шаблонного класса (Весь основной код класса вынести в другой файл) Создание своего класса кнопки с использованием наследования от класса UserControl Обявление шаблонного класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|