簡體   English   中英

錯誤:將 type.. 的引用綁定到 const

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM