设计一个模板类,某个成员变量是在调用的时候才能知道其具体类型。设计重载运算符=。
需要特别重视的是:
Vec<int>
与Vec<float>
是不同的类型,不同类型之间的赋值,会默认调用类型转换函数。
模板类
// undefied behavior for 0 > _len
template<class _T>
class Vec{
public:
Vec() : _len(0), _dat(NULL) {}
Vec(const int32_t len) {
_len = len;
_dat = new _T[len];
}
Vec(const int32_t len, const _T &val) {
_len = len;
_dat = new _T[len];
for (int32_t i = 0; i < _len; i++){
_dat[i] = val;
}
}
template<class CT>
Vec(const Vec<CT> &obj){
_len = obj.get_len();
if (0!=_len){
_dat = new _T[_len];
}