C++ 错误:应为(‘;)’;在‘之前;启动&x2019;当我继承std::vector时
这是我的代码,它在C++ 错误:应为(‘;)’;在‘之前;启动&x2019;当我继承std::vector时,c++,C++,这是我的代码,它在向量(迭代器开始,迭代器结束) 名称空间{ 模板 类向量:public std::vector{ 公众: vector():std::vector(){} 向量(std::initializer_list l):std::向量(l){ 使用std::vector::迭代器; 向量(迭代器开始,迭代器结束):std::vector(开始,结束){ }; } int main(int argc,字符**argv){ 向量v{1,2}; 返回(0); }; 完整错误输出: /hom
向量(迭代器开始,迭代器结束)
名称空间{
模板
类向量:public std::vector{
公众:
vector():std::vector(){}
向量(std::initializer_list l):std::向量(l){
使用std::vector::迭代器;
向量(迭代器开始,迭代器结束):std::vector(开始,结束){
};
}
int main(int argc,字符**argv){
向量v{1,2};
返回(0);
};
完整错误输出:
/home/roroco/Dropbox/cs/ro-c/ex/ex.cc:15:29: error: expected ‘)’ before ‘start’
vector<ET>(iterator start, iterator end) : std::vector<ET>(start, end) { }
“开始”之前的“/home/rorooco/Dropbox/cs/ro-c/ex/ex.cc:15:29:错误:预期“)”
向量(迭代器开始,迭代器结束):std::vector(开始,结束){
如何使其工作?使用std::vector::iterator替换
代码>带有
using typename std::vector<ET>::iterator;
// ^^^^^^^^
使用typename std::vector::iterator;
// ^^^^^^^^
没有typename
编译器就无法确定iterator
是成员字段/函数还是类型。所以编译器假定它是一个字段/函数。这个例子真的很小吗?这个错误到底发生在哪里?@UlrichEckhardt我认为这个例子很小,很清楚,还有确切的错误信息。根据错误消息,第vector(迭代器开始,迭代器结束)行出现错误:std::vector(开始,结束){}
using typename std::vector<ET>::iterator;
// ^^^^^^^^