码迷,mamicode.com
首页 > 其他好文 > 详细

discards qualifier

时间:2016-08-30 07:09:05      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

C++中,引用const对象时,也只能通过该对象访问其const函数,因为非const函数可能修改const对象本身,编译器避免了这一类情况会报错如下:

passing const Sales_data as this argument of  std::string Sales_data::isbn() discards qualifiers [-fpermissive]

源代码:

class Sales_data{
    friend bool compareIsbn(const Sales_data &lhs,const Sales_data &rhs);
    string bnum;
    string bname;
public:
    Sales_data(string bnum,string bname):bnum(bnum),bname(bname){}
    string isbn() {
        return this->bnum;
    }
};
bool compareIsbn(const Sales_data &lhs,const Sales_data &rhs){
    return lhs.isbn()<rhs.isbn();
}

conpareIsbn因为调用的是const对象,访问它的isbn()函数也必须是const的才能够编译通过

class Sales_data{
    friend bool compareIsbn(const Sales_data &lhs,const Sales_data &rhs);
    string bnum;
    string bname;
public:
    Sales_data(string bnum,string bname):bnum(bnum),bname(bname){}
    string isbn() const{
        return this->bnum;
    }
};
bool compareIsbn(const Sales_data &lhs,const Sales_data &rhs){
    return lhs.isbn()<rhs.isbn();
}

 

discards qualifier

标签:

原文地址:http://www.cnblogs.com/cq-shihao/p/5820419.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!