|
136 / 48 / 2
Регистрация: 31.07.2014
Сообщений: 238
|
||||||
Переопределение метода класса-шаблона04.09.2014, 21:57. Показов 5059. Ответов 20
Метки нет (Все метки)
Привет народ. Есть такой код:
0
|
||||||
| 04.09.2014, 21:57 | |
|
Ответы с готовыми решениями:
20
Определение метода-шаблона за пределами шаблона класса
Вынос реализации метода шаблона класса в другой файл |
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||
| 04.09.2014, 22:16 | ||||||
|
Вообще-то, тут что-то не логичное. TProc1 - синоним типа OS::process<OS::pr0, 90>. Proc1 - стало быть экземпляр этого типа. И третья строка совсем этим не стыкуется. То же самое, что написать:
0
|
||||||
|
136 / 48 / 2
Регистрация: 31.07.2014
Сообщений: 238
|
|
| 04.09.2014, 22:21 [ТС] | |
|
Тем не менее - это строчка из примера для запуска процесса операционки scmRTOS (для микроконтроллеров, но C++ он и в Африке).
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 04.09.2014, 22:28 | |
|
NoobsEnslaver, ссылку на пример можно увидеть?
0
|
|
|
136 / 48 / 2
Регистрация: 31.07.2014
Сообщений: 238
|
|
| 04.09.2014, 22:38 [ТС] | |
|
Вот ссылка на sourceforge:
http://sourceforge.net/project... r/download Там зайти в AVR\GCC\MEGA\3-Channel\main.c Или вот, именно кусочек того что тебе нужно, чтобы не рыться: https://cloud.mail.ru/public/8... %2FMEGA.7z
0
|
|
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
|
| 04.09.2014, 22:59 | |
|
NoobsEnslaver, либо ссылка не та, либо что-то совсем странное. Ибо я вижу только пример с Тип::метод
0
|
|
|
136 / 48 / 2
Регистрация: 31.07.2014
Сообщений: 238
|
||||||
| 04.09.2014, 23:35 [ТС] | ||||||
|
Ну как же, точно 3-Channel\src\main.c смотрел?
Вот оттуда фрагменты:
0
|
||||||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||
| 04.09.2014, 23:57 | ||||
|
0
|
||||
|
136 / 48 / 2
Регистрация: 31.07.2014
Сообщений: 238
|
|
| 05.09.2014, 00:02 [ТС] | |
|
Да да да... недосмотрел я эту Т
Спасибо) Ну ладно, а дальше по сабжу - я правильно истолковал, кроме момента с потерянной "Т" код? И еще - зачем при переопределении exec() вначале ставится template<>? Не совсем понимаю этот механизм..
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||||||||||||
| 05.09.2014, 01:42 | ||||||||||||
|
А
0
|
||||||||||||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
| 05.09.2014, 02:00 | |
|
0
|
|
|
136 / 48 / 2
Регистрация: 31.07.2014
Сообщений: 238
|
||||||
| 05.09.2014, 09:06 [ТС] | ||||||
|
Всётаки еще не понятно - во-первых почему вначале мы ставим template<>, хотя дальше у нас и так идет конкретизация шаблона <OS:
r0, 120>, во-вторых - не возникнет проблем из за того, что мы сначала создали объект класса, а потом переопределили ему метод? И в-третьих, ну эт немного по-нубски, но всёже - разве создание объекта класса происходит не так
0
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||||||||||||||||||||||||||||||||||||||
| 05.09.2014, 10:32 | |||||||||||||||||||||||||||||||||||||||
Сообщение было отмечено NoobsEnslaver как решение
РешениеЯвно инстанцировать такой метод можно несколькими способами. Первый способ написать явное инстанцирование для всего класса
Поэтому мы воспользовались специализией (но явное инстанцирование от этого не перестало происходить).
4
|
|||||||||||||||||||||||||||||||||||||||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|||||||||||||
| 06.09.2014, 01:13 | |||||||||||||
0
|
|||||||||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||||||
| 06.09.2014, 01:29 | |||||||
0
|
|||||||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|||||
| 06.09.2014, 01:48 | |||||
|
Я почему прицепился: подумал, что в 10 посте приведены объявления специализаций, и написано:
0
|
|||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||||
| 06.09.2014, 02:05 | |||||
|
Объявление там в основном шаблоне, вынесено в h-файл. Определения там три, для каждой специализации. Но т.к. специализация явная, то она приводит к инстацированию (генерации) функций. Я специально указал сперва синтаксическое определение, а затем в скобочках эффект, который при этом достигается. Этого собственно и добивался автор. Вызов метода exec из другой единицы трансляции не будет приводить к инстацированию, вместо этого будут использованы уже инстацированные функции из модуля, который мы тут рассматривали. Я понимаю, что тебя сбило с толку не "книжное" изложение материала. Но это не расходится с теорией, т.к. механизмы все взаимосвязаны и здесь важно понимать что именно происходит при тех или иных действиях, а не просто запоминать и ассоциировать поведение с определенным синтаксисом. Добавлено через 5 минут
1
|
|||||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||||||
| 06.09.2014, 02:13 | ||||||||||
и дальше написано:
0
|
||||||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||||||||
| 06.09.2014, 02:21 | ||||||||
|
Или ты про то, что в #if 0? Добавлено через 3 минуты Определение явной специализации, вот оно:
0
|
||||||||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||||
| 06.09.2014, 02:25 | ||||||||
|
Добавлено через 3 минуты ![]() Давай так. Если было бы вот так написано, это было бы правильно?
0
|
||||||||
| 06.09.2014, 02:25 | |
|
Помогаю со студенческими работами здесь
20
Передача метода класса в качестве параметра для метода другого класса Переопределение виртуального метода Наследование. Переопределение метода родителя Вызов метода класса из метода другого класса Явное создание экземпляра класса и явная специализация шаблона класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|