[英]error: binding 'const ...' to reference of type '...&' discards qualifiers
[英]Error: Binding reference of type .. to const
我正在嘗試重載運算符<<。 嘗試時我收到一條錯誤消息
Error: Passing const as this argument discards qualifiers
所以我將 const 添加到我的函數中,但現在我收到了這個錯誤:
Binding reference of type.. to const.
主.cpp
ostream& operator<<(ostream& ostr, const Student& stud){
float mo = 0;
int quantity = stud.get_grade().size();\
.
.
.
獲取等級 Function
vector<pair<Subject *, float>>& Student::get_grade() const{
return grade;
}
錯誤
binding reference of type ‘std::vector<std::pair<Subject*, float> >&’ to ‘const std::vector<std::pair<Subject*, float> >’ discards qualifiers
| return grade;
等級是一個向量
get_grade
是一個const 成員 function ,這意味着它內部的this
指針的類型是const Student*
,這反過來意味着數據成員grade
被視為它本身const
。 但問題是您的 function 的返回類型是對非常量 std::vector 的std::vector
值引用,這意味着它不能綁定到const std::vector
。
要解決這個問題,只需在 function 的返回類型中添加一個低級const
,如下所示:
vvvvv------------------------------------------------------------->low-level const added
const vector<pair<Subject *, float>>& Student::get_grade() const{
return grade;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.