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指针就会强转,就会出错!

原文地址:https://www.cnblogs.com/FWFC/p/8600209.html