博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常见错误 无法将this 从const type 转换为 非const type
阅读量:5049 次
发布时间:2019-06-12

本文共 844 字,大约阅读时间需要 2 分钟。

错误原因:常量成员函数和常量对象不能调用非常量成员函数。

示例1:常量成员函数调用自身非常量成员函数

class Item{public:    Item(string str):isbn(str){}    void show() const{        cout << this->book() << endl;    }    string book(){        return this->isbn;    }private:    string isbn;};int main(int argc, char *argv[]){    Q_UNUSED(argc);    Q_UNUSED(argv);    Item item("fan");    item.show();    return 0;}

程序运行提示

cout << this->book() << endl;

错误

book()成员函数改成以下定义则正确编译运行

string book() const{        return this->isbn;    } 示例2 定义常量对象,并调用非常量方法出错,同上的将book函数改成常量的则编译通过
class Item{public:    Item(string str):isbn(str){}    string book(){        return this->isbn;    }private:    string isbn;};int main(int argc, char *argv[]){    Q_UNUSED(argc);    Q_UNUSED(argv);    const Item item("fan");    cout << item.book() << endl;    return 0;}

 

 

转载于:https://www.cnblogs.com/justboy/p/6525168.html

你可能感兴趣的文章
mysql 多表管理修改
查看>>
group by order by
查看>>
bzoj 5252: [2018多省省队联测]林克卡特树
查看>>
https 学习笔记三
查看>>
华为“云-管-端”:未来信息服务新架构
查看>>
基于Sentinel实现redis主从自动切换
查看>>
函数(二)
查看>>
oracle中所有存在不存在的用户都可以使用dba连接到数据库
查看>>
函数式编程思想
查看>>
java安全沙箱(二)之.class文件检验器
查看>>
Oracle学习之简单查询
查看>>
log4j配置
查看>>
linux 配置SAN存储-IPSAN
查看>>
双链表
查看>>
java学习笔记之String类
查看>>
pymysql操作mysql
查看>>
Linux服务器删除乱码文件/文件夹的方法
查看>>
牛腩记账本core版本源码
查看>>
Word Break II
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>