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代码>