首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ 可不可以将一个模板类型传递给vector<>

2013-09-06 
C++ 能否将一个模板类型传递给vector ?#include vectorusing namespace stdtemplatetypename TAVcl

C++ 能否将一个模板类型传递给vector<> ?


#include <vector>

using namespace std;

template<typename TAV>
class Container
{
private:
vector<TAV> m_List;
vector<TAV>::iterator m_Itor;
public:
void add(TAV node)
{
m_List.push_back(node);
}
}

int test()
{
Container<int> t;
t.add(1);
}


这样的,为什么编译不通过呢?
[解决办法]
少了个typename
vector<TAV>::iterator m_Itor;

改为
typename vector<TAV>::iterator m_Itor;

[解决办法]
依赖型名字被假定为值,除非前面加上一个typename。
具体意思是说iterator是依赖于参数TAV的,如果不加typename就认为iterator是一个值,而不是类型。

热点排行