代码:

class HasPtr{
public:HasPtr(const string &s = string()):ps(new string(s)),i(0){}HasPtr(const HasPtr &p){ps = new string(p.getPs());i = p.i;}const string getPs(){return *ps;}
private:string *ps;int i;
};

error:

error: passing 'const HasPtr' as 'this' argument of 'const string HasPtr::getPs()' discards qualifiers [-fpermissive]|

在写HasPtr类的拷贝构造函数时发生了上述错误,找了很久没找出来,最后才发现拷贝构造函数传入的是一个常量引用,而常量引用不能够调用非常量成员函数。

太心酸了,之前还记录了一篇关于常量成员函数的限制,一写就忘。

知道错误就简单了

class HasPtr{
public:HasPtr(const string &s = string()):ps(new string(s)),i(0){}HasPtr(const HasPtr &p){ps = new string(p.getPs());i = p.i;}const string getPs() const{return *ps;}
private:string *ps;int i;
};

c++编译时出现discards qualifiers [-fpermissive]的错误相关推荐

  1. [ c++] cmake 编译时 undefined reference to `std::cout‘ 错误的解决方案

    [ c++] cmake 编译时 undefined reference to `std::cout' 错误的解决方案 参考文章: (1)[ c++] cmake 编译时 undefined refe ...

  2. 【开发日常】【Makefile】编译时如何将警告(warning)视为错误(error)?

    我们有时会遇到内核编译时警告(warning)被视为错误(error)等问题 在内核源码中,移植外部驱动模块,出现报错: error: unused variable 'xxx' [-Werror=u ...

  3. javac编译时出现GBK报错(错误:编码GBK的不可映射字符)

    javac编译时出现GBK报错(错误:编码GBK的不可映射字符)一 这里列出我遇到的三种情况 代码格式分别为:ANSI.UTF-8.无BOM的UTF-8(这里我用的是notepad++进行编写) AN ...

  4. apk 打包 java出错_AndroidApk混淆编译时,报告java.io.IOException...错误解决办法

    在混淆编译之前,我的程序可以正常运行,混淆编译时,报告如下错误: Error:Execution failed for task ':gviews:transformClassesAndResourc ...

  5. error: passing ‘const xxx’ as ‘this’ argument discards qualifiers c++primer 5th文本查询程序一个错误请各位指教(已解决)

    文件main.cc 文件main.cc #include <string> #include <iostream> #include <memory> #inclu ...

  6. C语言编译时产生的警告:initializing ‘char *‘ with an expression of type ‘const char *‘ discards qualifiers

    警告的产生: char *my_strstr(const char *str1,const char *str2) {const char *s1 = NULL;const char *s2 = NU ...

  7. arduino编译失败_Arduino编译时失败

    错误信息: Arduino:1.8.4 (Windows 7), 开发板:"Arduino/Genuino Uno" C:\Program Files\Arduino\arduin ...

  8. C++编程常见问题—error: passing 'const std::map]' discards qualifiers或pass-by-reference-to-const-map导致的“d

    产生问题的场景: int func(const map<int, string> &aMap) { string value = amap[0]; } 或者 int  Test:: ...

  9. android开发板出错,为开发板编译时出错是什么原因

    我也是怎么办 Arduino:1.8.4 (Windows 7), 开发板:"Arduino/Genuino Uno" C:\Program Files\Arduino\ardui ...

  10. android源码下载,编译及编译时遇到的错误整理

    一.环境搭建 因为android的源码编译只支持linux和mac,所以无法在windows下编译.我的电脑也没有双系统,因此只有装一个虚拟机.我用的是VMware workstation 我放到了百 ...

最新文章

  1. linux下安装php的imagick扩展模块(附php升级脚本)
  2. 装修行业难互联网化?利润不合理并非本质,体制才是
  3. Httpwatch 工具介绍
  4. 程序图形化界面刷新以及如何从tkinter窗口中正确读出数据
  5. 如果人民币贬值,对股市会有什么影响?
  6. 手把手教你搭建数据库服务器平台 | DBA VS 自动化运维,究竟谁与争锋?
  7. Red5开发第一步-Hello World
  8. iOS 给任意一个view转换为image的方法封装
  9. (转)C#软件注册与注册机
  10. 赛微微电科创板上市破发:跌幅达26% 公司市值44亿
  11. 在C中将二进制转换为十进制
  12. 计算机考研时间计划表,【考研复习计划】_这里有最详细的考研复习计划时间表...
  13. sketchup 图片转模型_SketchUp插件:位图转模型使用技巧
  14. 台球原理分析及瞄准新方法
  15. php redis incr过期时间,Redis 利用 incr 和 expire 来限流, 并发导致过期时间失效问题...
  16. OSAL初始化流程分析
  17. Project Ara 手机,拼装的DIY手机
  18. 怎么开发一个小程序?从零开始手把手教你
  19. python学习之面向对象(二)
  20. 当机器学习遇到病理学,机遇和挑战(UCL柴秉浩博士 | 钰沐菡 公益公开课)

热门文章

  1. NISP题库(八套模拟题)
  2. 学术论坛第三期:多指标异常检测方法综述
  3. java抽象类的属性_JAVA 抽象类
  4. 【深入理解CSS】层叠、优先级、继承
  5. python 日期 格式转换 英文_python中各种时间格式的转换
  6. 新版个人所得税python123_个人所得税目前的主要征收方式有( )。
  7. DS18B20 数字温度传感器实验
  8. python卡方拟合性检验_卡方分布、卡方独立性检验和拟合性检验理论及其python实现...
  9. OPNsense用户手册-反病毒引擎
  10. 多线程和高并发的区别