我在使用以下代码片段时遇到问题
string const& symbol::at(int index) const {
assert(index<symbol_data.vector::size());
return symbol_data.vector::at(index);
}
这里,symbol_data是类的私有(private)成员,是一个vector
::at 是我定义的符号类中的一个成员函数。
当我尝试编译这段代码时,我收到以下错误消息:
error: ‘template<class _Tp, class _Alloc> class std::vector’ used without template parameters
但是,如果我把函数原型(prototype)改成
就没有错误了 string symbol::at(int index) {...}
有人知道如何让 STL vector 与 const 引用一起正常工作吗?
最佳答案
我写这篇文章时你的代码:
string const& symbol::at(int index) const {
assert(index<symbol_data.vector::size());
return symbol_data.vector::at(index);
}
只写 symbol_data.
而不是 symbol_data.vector::
。
干杯,
关于c++ - const 引用返回和 STL vector 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6530476/