普通类继承模板类,在继承时实例化了模板类,那么在普通类的构造函数中需要初始化模板类的实例。
如下所示
BASE.HPP
#include <iostream>
template <typename T>
class base{
public:
base(T v){
num = v;
}
base(){
T a = 0;
num = a;
}
T num;
T get_num(){
return num;
}
};
#include <iostream>
#include "base.hpp"
class data :public base<int>{
public:
data(int arg):base<int>(100)
{
std::cout<<get_num()<<std::endl;
num = arg;
}
};
int main()
{
data a(1);
std::cout<<a.get_num()<<std::endl;
base<float> tmp(2.1);
std::cout<<tmp.get_num()<<std::endl;
return 0;
}
打印内容如下
100
1
2.1