0
我正在使用C++中的模板製作自定義列表並獲取一些編譯錯誤。
代碼的長度非常大,因此這裏是錯誤發生地點的一小段代碼。編譯錯誤如下。你可以編譯它自己的系統來查看相同的錯誤。編譯器「錯誤:傳遞'const something'作爲'this'參數丟棄限定符'
#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; }
要調用非const限定的方法'長度'在const限定對象'list'上。使'length()'const限定。 – VTT
'int length(){return m_count; }' - >'int length()const {return m_count; }' – Yunnosch
你讀過錯誤了嗎?你明白這是什麼意思? –