Форум программистов, компьютерный форум, киберфорум
Наши страницы

шаблон функции в нешаблонном классе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рендер без цикла http://www.cyberforum.ru/cpp-beginners/thread918747.html
Доброго времени суток. Нужно сделать функцию обновления для простого консольного приложения которое будет работать в фоне, но без цикла. Потому-что с циклом слишком большая нагрузка ЦП. Например как...
C++ Открытие программ свернутых в трей Доброго времени суток. Как можно средствами консоли (если в консоли нельзя, то подскажите что-то другое) открывать программы свернутые в трей. Как у нижней панельки винды. Хочется отключить explorer,... http://www.cyberforum.ru/cpp-beginners/thread918746.html
Курсовая работа "Паттерн Компоновщик. Расчет стоимости оборудования исходя из его составных частей." C++
Предлагаю ознакомиться с моей курсовой работой на данную тему. С заинтересованными обсудим на каких условиях я предоставлю все файлы связанные с курсовой, включая пояснительную записку.
Сортировка C++
Задача 7 из 8 главы книги Страуструпа Запишите пять имен в вектор vector<string> пате, затем предложите поль¬зователю указать возраст названных людей и запишите их в вектор vесtor<double> age....
C++ Как правильно переделать в c++ ? http://www.cyberforum.ru/cpp-beginners/thread918734.html
pascal код uses crt; var x,a,b,c,e,d,h:real; i,j:longint; q:char; function f(x,d:real):real; begin f:=d*ln(x)-1/x;
C++ Написать программу, осуществляющую блочную сортировку одномерного массива Написать программу, осуществляющую блочную сортировку одномерного массива подробнее

Показать сообщение отдельно
Gorillych
14 / 14 / 1
Регистрация: 04.07.2013
Сообщений: 76
06.07.2013, 21:11
Цитата Сообщение от SeerRus Посмотреть сообщение
то есть виртуальная функция-член не может быть шаблоном?
А шаблонный класс может содержать виртуальные функции и иметь наследников?
Шаблонный класс, естественно, может содержать виртуальные функции, иметь наследников и т.д. Единственное ограничение на виртуальные методы и виртуальные деструкторы - они не могут быть шаблонными.
Вот пример наследования шаблонных классов с виртуальными функциями:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
template<typename Type>
class Base
{
public:
    Base(Type a) : a_(a) {}
    virtual void foo()
       {std::cout<<"This is instance of Base template class with "<<typeid(Type).name()<<" type";}
    Type a_;
};
 
template<typename TypeBase, typename TypeDer>
class Derived : public Base<TypeBase>
{
public:
    Derived(TypeBase a, TypeDer b) : Base<TypeBase>(a), b_(b) {}
    virtual void foo() override
    {std::cout<<"This is instance of Derived template class with "<<
                typeid(TypeBase).name()<<" Base type and "<<typeid(TypeDer).name()<<" Derived type";}
    TypeDer b_; 
};
 
int main()
{
    Base<double> obj1(1.1);
    obj1.foo();
 
    Derived<float, int> obj2(0.1f, 1);
    obj2.foo();
    
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru