C++ 无法转换参数';int';至';char&';

C++ 无法转换参数';int';至';char&';,c++,type-conversion,C++,Type Conversion,我收到一个我不理解的编译器错误,不知道如何正确处理它。如果有人能给我一些关于如何修复它的建议,我将不胜感激。错误内容如下: Error 1 error C2664: 'char myVector<char>::at(T &) const' : cannot convert argument 1 from 'int' to 'char &' 错误1错误C2664:'char myVector::at(T&)const':无法将参数1从'int'转换为'char

我收到一个我不理解的编译器错误,不知道如何正确处理它。如果有人能给我一些关于如何修复它的建议,我将不胜感激。错误内容如下:

Error   1   error C2664: 'char myVector<char>::at(T &) const' : cannot convert argument 1 from 'int' to 'char &'
错误1错误C2664:'char myVector::at(T&)const':无法将参数1从'int'转换为'char&'

它位于标题代码的第159行,在该行中,它准确地读出了tin上的内容。当你有

T at(T&) const;
myVector
中,转换为

char at(char&) const;
int
不能绑定到对
char
的引用。我想你是想说

T at(int) const;
或者更好

T at(std::size_t) const;

因为
std::size\u t
通常(按惯例)用于这类事情
int
可以隐式转换为
std::size\u t
,这样也可以正常工作。

与tin上的内容完全相同。当你有

T at(T&) const;
myVector
中,转换为

char at(char&) const;
int
不能绑定到对
char
的引用。我想你是想说

T at(int) const;
或者更好

T at(std::size_t) const;

因为
std::size\u t
通常(按惯例)用于这类事情
int
可以隐式转换为
std::size\t
,因此这也可以正常工作。

myVector::at(t&)的声明将模板类型作为参数。您需要将其声明为

T at(unsigned int&) const

这样,您就可以使用参数作为索引。

myVector::at(T&)的声明将模板类型作为参数。您需要将其声明为

T at(unsigned int&) const

这样,您就可以使用参数作为索引。

使用此修复程序时,我现在遇到另一个错误,错误1错误C2662:'char&myVector::at(size_t)':如果要返回
char&
(可变引用),则无法将'this'指针从'const myVector'转换为'myVector&',那么向量就不能是常量——它可以通过引用来改变。使用
T&at(标准::尺寸\u T)而不是
T&at(std::size\T)const使用此修复程序时,我现在遇到另一个错误,错误1错误C2662:'char&myVector::at(size_t)':无法将'this'指针从'const myVector'转换为'myVector&',如果要返回
char&
(可变引用),则向量不能是const--可以通过该引用进行更改。使用
T&at(标准::尺寸\u T)而不是
T&at(std::size\T)const