C++ 中const 类型限定符不兼容问题_C 语言

今天在写程序的时候,出现了一个错误  “对象包含与成员函数不兼容的类型限定符”,从网上查了一下,原来原因是这样子的

void showPair();

改成 void showPair()const;

在具有 如上图所示的函数中,如果调用了其它函数,那么其它函数也必须有 const 属性,否则就会出现 类型限定符不兼容的错误!

以上所述就是本文的全部内容了,希望大家能够喜欢。

时间: 2024-09-27 01:03:13

C++ 中const 类型限定符不兼容问题_C 语言的相关文章

C++中Operator类型强制转换成员函数解析_C 语言

类型转换操作符(type conversion operator)是一种特殊的类成员函数,它定义将类类型值转变为其他类型值的转换.转换操作符在类定义体内声明,在保留字 operator 之后跟着转换的目标类型.转换函数又称类型强制转换成员函数,它是类中的一个非静态成员函数.它的定义格式如下: 复制代码 代码如下: class <类型说明符1> { public: operator <类型说明符2>(); - } 这个转换函数定义了由<类型说明符1>到<类型说明符2

c++-请教一下C++中的引用限定符的作用是什么?

问题描述 请教一下C++中的引用限定符的作用是什么? 并没有看懂C++primer上的解释.我这里说的引用限定符是成员函数的参数列表后加的&或&&,谢谢各位大神了. 解决方案 引用限定符就是限制调用成员函数的对象有引用限定&表示成员函数调用的对象需要是引用类型&&表示成员函数调用对象需要是右值引用.当不符合这些限定时,编译器会报错. 解决方案二: reference qualifier,我觉得翻译成引用修饰符更好参考:http://blog.csdn.net

C/C++中static,const,inline三种关键字详细总结_C 语言

一.关于staticstatic 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因.作用谈起,全面分析static 修饰符的实质. static 的两大作用: 一.控制存储方式 static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间. 引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保

C++中函数使用的基本知识学习教程_C 语言

函数是执行某种操作的代码块.函数可以选择性地定义使调用方可以将实参传递到函数中的输入形参.函数可以选择性地返回值作为输出.函数可用于在单个可重用块中封装常用操作(理想情况是使用可清晰地描述函数行为的名称).以下函数从调用方接受两个整数并返回其总和:a 和 b 是 int 类型的参数. int sum(int a, int b) { return a + b; } 可以从程序中任意数量的位置调用函数.传递给函数的值是实参,其类型必须与函数定义中的形参类型兼容. int main() { int i

C++编程中指针的声明与基本使用讲解_C 语言

使用以下序列声明指针. [storage-class-specifiers] [cv-qualifiers] type-specifiers [ms-modifier] declarator ; 其中,任何有效指针声明符均可用于 declarator.简单指针声明符的语法如下所示: * [cv-qualifiers] identifier [= expression] 1.声明说明符: 可选存储类说明符. 应用于要指向的对象的类型的可选 const 或 volatile 关键字. 类型说明符:可

C++中4种强制类型转换的区别总结_C 语言

前言 使用标准C++的类型转换符:static_cast.dynamic_cast.reinterpret_cast和const_cast. const_cast,字面上理解就是去const属性. static_cast,命名上理解是静态类型转换.如int转换成char. dynamic_cast,命名上理解是动态类型转换.如子类和父类之间的多态类型转换. reinterpreter_cast,仅仅重新解释类型,但没有进行二进制的转换. 一.static_cast 用法:static_cast

C++ const修饰变量和修饰函数介绍_C 语言

const修饰变量 关于const最常见的一个面试题是这样的:char *const和const char*有什么区别,大家都知道const修饰符代表的是常量,即const修饰的变量一旦被初始化是不能被更改的,这两个类型一个代表的是指针不可变,一个代表指针指向内容不可变,但具体哪个对应哪个,很多人一直搞不清楚. 有这样一个规律,const修饰的是它前面所有的数据类型,如果const在最前面,那么把它和它后面第一个数据类行交换.比如上面的const char*交换之后就是char const *,

对C语言中指针的理解与其基础使用实例_C 语言

C语言的指针,关键意思在于"指". "指"是什么意思? 其实完全可以理解为指示的意思.比如,有一个物体,我们称之为A.正是这个物体,有了这么个称谓,我们才能够进行脱离这个物体的实体而进行一系列的交流.将一个物体的指示,是对这个物体的抽象.有了这种抽象能力,才有所谓的智慧和文明.所以这就是"指示"这种抽象方法的威力. 退化到C语言的指针,指针是一段数据/指令(在冯诺易曼体系中,二者是相通,在同一空间中的)的指示.这是指示,也就是这段数据/指令的起始

深入解析C++编程中范围解析运算符的作用及使用_C 语言

范围解析运算符 :: 用于标识和消除在不同范围内使用的标识符. 语法 复制代码 代码如下: :: identifier class-name :: identifier namespace :: identifier enum class :: identifier enum struct :: identifier 备注identifier 可以是变量.函数或枚举值.具有命名空间和类以下示例显示范围解析运算符如何与命名空间和类一起使用: namespace NamespaceA{ int x;