| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > не мог бы кто нибудь объяснить ошибку с темплейт |
| Автор: maxfox111 8.3.2016, 00:38 | ||||
| Добрый день, (или вечер) не мог бы кто нибудь помочь разобраться с ошибкой с темплейтами в пространстве Warning567 объявлено несколько классов. Меня интересует объект ow567, как я понимаю он наследует свойства и функции класса oddwO_t и класса ow567_t. Мне необходимо в своем коде реализовать функцию "set" для этого объекта, что бы отлавливать вызовы приведенные ниже и работать с параметрами.
ПОПЫТКА реализации Делаю так:
1)если пишу "void set( uint8_t p, uint32_t d =1, uint8_t s =1 )" то мингв просто игнорирует вызов этой функции. Это понятно. 2)если пишу "void ow567_t::set( uint8_t p, uint32_t d =1, uint8_t s =1 )" то мингв ругается member function declared in class 'Warning567::ow567_t'. Это вроде бы все понятно, так как "set" наследуется от oddwO_t. 3)если пишу "void oddwO_t::set( uint8_t p, uint32_t d =1, uint8_t s =1 )" то мингв требует темплайт параметры для вызова. Но вот здесь я начинаю плавать, Так как вроде бы я указываю то все верно, что еще надо? НЕ мог бы кто нибудь объяснить как правильно объявлять функции у подобных объектов? (инклюды и сишники,где это все объявлено, модифицировать не могу) |
| Автор: xvr 9.3.2016, 15:42 | ||||
| В том виде, как у вас это написанно вы никак set не переопределите. Он не виртуальный и с телом, т.ч. перегрузить его не получится. Определение тела функции set вне класса будет выглядить так -
Максимум можно попытаться сделать частичную специализацию на конкретное значение O (например 42):
|