gpt4 book ai didi

c++ - 自制 vector 模板运算符[]错误

转载 作者:太空狗 更新时间:2023-10-29 19:45:41 26 4
gpt4 key购买 nike

我制作了自己的 vector 模板,operator[]一部分:

template <class T>
T& vector<T>::operator[](unsigned int index)
{
return m_Data[index];
}

我在类复制构造函数中使用这段代码

Track::Track(const Track& src)
{
for(unsigned int i = 0; i < src.sorted.size(); i++)
AddCar(src.sorted[i]->rz, src.sorted[i]->owners.back()->name, src.sorted[i]->owners.back()->surname);
}

我收到一个错误 'no match for operator[] (operands types are const vector<Track*> and unsigned int)'

我试图重载 operator[]const关键词:

const T& operator[](unsigned int);

但这给了我一个不同的错误:const T& operator[](unsigned int); cannot be overloaded

这可能是什么原因?

最佳答案

你必须像这样实现 operator[]const 版本:

template <class T>
const T& vector<T>::operator[](unsigned int index) const
{
return m_Data[index];
}

关于c++ - 自制 vector 模板运算符[]错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29751814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com