gpt4 book ai didi

c++ - 编译器 "error: passing ‘const something’ 作为 ‘this’ 参数丢弃限定符”

转载 作者:太空狗 更新时间:2023-10-29 23:49:06 24 4
gpt4 key购买 nike

我正在使用 C++ 中的模板制作自定义列表并遇到一些编译错误。
该代码的长度非常长,因此这里是错误来源的一小段代码。编译错误如下。你可以编译它自己的系统看到同样的错误。

#include <iostream>
using namespace std;

template <class T>
class sortedList
{
int m_count;
public:
sortedList(){m_count = 0;}
int length(){ return m_count; }

};


void output(const sortedList<int>& list)
{
cout << "length" << list.length() << endl;
return;
}

int main() {
// your code goes here

sortedList <int> list1;
output(list1);

return 0;
}

我遇到了编译错误:

prog.cpp: In function ‘void output(const sortedList<int>&)’:
prog.cpp:17:35: error: passing ‘const sortedList<int>’ as ‘this’ argument discards qualifiers [-fpermissive]
cout << "length" << list.length() << endl;
^
prog.cpp:10:6: note: in call to ‘int sortedList<T>::length() [with T = int]’
int length(){ return m_count; }

最佳答案

您必须使 length 成为 const 限定的:

int length(){ return m_count; }

int length() const { return m_count; }

关于c++ - 编译器 "error: passing ‘const something’ 作为 ‘this’ 参数丢弃限定符”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46680634/

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