c++模板不同的继承和多态总结
模板模板继承
#include <iostream>
template <typename T>
class Test
{
public:
Test(T x):m_x(x){}
virtual void print() = 0;
protected:
T m_x;
};
template <typename T>
class Test2 :public Test<T>
{
public:
Test2(T x,T y):Test<T>(x),m_y(y) {}
void print() {
std::cout << "x = " << this->m_x << ", y = " <<this->m_y << std::endl;
}
private:
T m_y;
};
void test1()
{
//Test2<int> t1(1, 3);
//t1.print();
Test<int>* p = new Test2<int>(1, 3);
p->print();
}
int main()
{
test1();
return 0;
}