C++ Tutorial/template/class specialization — различия между версиями
Admin (обсуждение | вклад) м (1 версия: Импорт контента...) |
Admin (обсуждение | вклад) м (1 версия: Импорт контента...) |
(нет различий)
|
Текущая версия на 10:30, 25 мая 2010
Demonstrate class specialization
#include <iostream>
using namespace std;
template <class T> class MyType {
T x;
public:
MyType(T a) {
cout << "Inside generic MyType\n";
x = a;
}
T getx() {
return x;
}
};
// Explicit specialization for int.
template <> class MyType<int> {
int x;
public:
MyType(int a) {
cout << "Inside MyType<int> specialization\n";
x = a * a;
}
int getx() {
return x;
}
};
int main()
{
MyType<double> d(10.1);
cout << "double: " << d.getx() << "\n\n";
MyType<int> i(5);
cout << "int: " << i.getx() << "\n";
return 0;
}
Inside generic MyType double: 10.1 Inside MyType<int> specialization int: 25