今天写一个模板类,出于的目的是要写的模板类原本是两个管理类,里面除了被管理的类不同之外其他全部相同,但是今后可能两者会被扩充,如果写成一个就不好的。
后来想想还是把它改写成为一个模板类才行。
在类当中有一个std::list的成员,我要定义一个访问器:
std::list<T*>::iterator begin() {return list.begin();};
但是结果是出现类似如下的编译错误:
error: type `std::vector<T, std::allocator<_CharT>; >;' is not derived from type `Record<T>;'
error: ISO C++ forbids declaration of `iterator' with no type
后来查到了,原来要在之前加一个
typename。
正确代码如下:
typename std::list<T*>::iterator iter;