C++ 调试问题:对象包含与成员函数不兼容的类型限定符

技术C++ 调试问题:对象包含与成员函数不兼容的类型限定符 C++ 调试问题:对象包含与成员函数不兼容的类型限定符今天调试C++自定义String代码的时候,碰到一个问题,编译期报错:对象包含与成员函数

c调试问题:对象包含与成员函数不兼容的类型限定符。

今天在调试C自定义String代码的时候,遇到了一个问题,在编译的时候报告了一个错误:对象包含了一个与成员函数不兼容的类型限定符。

先看看代码:

类字符串{//自定义字符串类

公众号:

字符串(常量字符*

{//构造函数

if(!s){ 0

len=0;

str=新字符[1];

str[0]=0;

}

else {

len=strlen(s);

str=新字符[len 1];

strcpy(str,s);

}

}

~ String(){ delete[]Str;len=0;}//析构函数

int size(){ return len;}//字符数

字符串运算符=(常量字符串)

{//复制构造函数

if (this==s)返回* this

删除[]字符串;

len=s . size();

str=新字符[len 1];

strcpy(str,s . c _ str());

返回*这个;

}

const char *c_str()

{//获取C风格字符串

返回字符串;

}

私人:

char * str

int len

};

int main()

{

字符串名词(' book ');

字符串动词=名词;

cout noun . c _ str()endl;

cout动词. c _ str()endl;

返回0;

}

来自MSVC编译器的错误消息:

E1086对象包含与成员函数“String:size”不兼容的类型限定符

E1086对象包含与成员函数“String:c _ str”不兼容的类型限定符

问题在哪里?

问题似乎是在运算符=

我们知道,operator=左侧表达式类的内部成员会被修改,但右侧表达式类的内部成员不会被修改,所以只能调用等号右侧对象的const-limited函数(不是const的返回值),强制对象的内部状态不能被修改。

解决方案:向字符串String:size和字符串String:c _ str函数添加常量限定符:

类别字符串{ 0

公众号:

int size()const { return len;}

字符串运算符=(常量字符串)

{

if (this==s)返回* this

删除[]字符串;

len=s . size();

str=新字符[len 1];

strcpy(str,s . c _ str());

返回*这个;

}

const char *c_str() const

{

返回字符串;

}

.

};

.

总结:

在复制构造函数中,只能调用当前类的const限定符函数;

Const限定的成员函数只能调用const限定的成员函数,不能调用非const限定的成员函数,即使对象的内部状态没有被修改;

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/88699.html

(0)

相关推荐

  • Canal Instance 设计理念与定制开发思路是什么

    技术Canal Instance 设计理念与定制开发思路是什么这篇文章将为大家详细讲解有关Canal Instance 设计理念与定制开发思路是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后

    攻略 2021年10月21日
  • 铵根的化合价,邱俊霖化合价style歌词

    技术铵根的化合价,邱俊霖化合价style歌词是这个吧铵根的化合价?!《化学价Style》——邱俊霖
    我背化合价
    化合价
    化合物中 钾钠银氢 常显 +1 价
    在化合物中 钙镁钡锌 通常显 +2 价
    在化合物中 氟氯溴碘 通

    生活 2021年10月20日
  • fetch网络请求封装示例分析

    技术fetch网络请求封装示例分析本篇内容主要讲解“fetch网络请求封装示例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“fetch网络请求封装示例分析”吧!expor

    攻略 2021年11月23日
  • css权重有什么用

    技术css权重有什么用这篇文章主要讲解了“css权重有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css权重有什么用”吧! CSS权重

    攻略 2021年12月9日
  • 离子方程式中不能拆的物质,pbso4离子方程式能拆吗

    技术离子方程式中不能拆的物质,pbso4离子方程式能拆吗把易溶于水易电离的物质化学式改成离子哪些化学式要写成离子即能拆?哪些化学式不能写成离子即不能拆?要改写成离子的物质离子方程式中不能拆的物质:易溶于水的强电解质,包括

    生活 2021年10月28日
  • Word图标未显示在.doc和.docx文档文件怎么办

    技术Word图标未显示在.doc和.docx文档文件怎么办这篇文章主要介绍了Word图标未显示在.doc和.docx文档文件怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编

    攻略 2021年11月18日