C++错误:“const std::string &Sales_data::getIsbn(void)”: 不能将“this”指针从“const Sales_data”转 换为“Sales_data &”转换丢失限定符

 

今天写C++Primer的8.6的时候,出现了一个错误:

想了好长时间,不明白为啥转换丢失限定符,因为我函数定义是这样的:

调用是这样的:

但后来我突然想到,会不会是const 的指针只能调用const的函数,所以改了一下函数定义:

这次没有问题了,哈哈。

因为我记得我曾经在书上看到过这个问题的讨论,意思大概是:

const 的this指针只能调用const的函数(但是应该是可以调用const的成员变量的),所以this指针就会强转,就会出错!

 

posted @ 2018-03-19 10:14  泛未分晨  阅读(561)  评论(1编辑  收藏  举报