任何不会修改数据成员的函数都应该声明为const 类型。如果在编写const 成员函数时,不慎修改了数据成员,或者调用了其它非const 成员函数,编译器将指出错误,这无疑会提高程序的健壮性。以下程序中,类stack 的成员函数GetCount 仅用于计数,从逻辑上讲GetCount 应当为const 函数。编译器将指出GetCount 函数中的错误。class Stack{public:void Push(int elem);int Pop(void);int GetCount(void) const; // const 成员函数private:int m_num;int m_data[100];};int Stack::GetCount(void) const{++ m_num; // 编译错误,企图修改数据成员m_numPop(); // 编译错误,企图调用非const 函数
xxx//此处报错为:Member function 'xxx' not viable: 'this' argument has type 'xxx', but function is not marked
const
return m_num;}const 成员函数的声明看起来怪怪的:const 关键字只能放在函数声明的尾部,大概是因为其它地方都已经被占用了。
分享到:
相关推荐
const成员函数、初始化列表、static成员1
C++ 中const对象与const成员函数的实例详解 const对象只能调用const成员函数: #include using namespace std; class A { public: void fun()const { cout<<const 成员函数!<<endl; } void fun()...
以下的每一点会给出代码示例说明 一、c++成员函数后的const有以下特点: ... 二、另外,const对象与const成员函数相关的内容 1.由const 类名构造的对象只能调用 const方法 2.const对象的构
徐彤老师耗时三年倾心制作,专业录制,通俗,细致的讲解了C++ 编程从入门到高级
const 修饰成员函数
比较好的一本学习c数据结构,算法的书,书的内容丰富。有许多代码案例,通俗易懂
构造函数和析构函数
该文件是做一个简单图书管理系统项目的框架的源程序文件,用c++做好了框架,有部分的功能,其他功能需要自己添加。
Const,Const函数,Const变量,函数后面的Const ,Const成员函数,c++仅供参考
(3)常成员函数不能更新类的成员变量,也不能调用该类中没有用const修饰的成员函数,只能调用常成员函数。 (4)非常量对象也可以调用常成员函数,但是如果有重载的非常成员函数则会调用非常成员函数。 重载看例子...
C++基础,从入门到类与对象的 const修饰成员函数
先明确几个概念: 1. 常对象只能调用常成员函数。 2. 普通对象可以调用全部成员函数。...在X类的const成员函数中,this指针的类型为:const X* const, 这说明this指针所指向的这种对象是不可修改的(即不能对这种
2. const:定义常成员,包括const数据成员和const成员函数,const数据成员必须,也只能通过构造函数的初始化列表进行初始化,const成员函数只能访问类的成员,不能进行修改,如果需要修改,则引入下面的mutable...
对于成员函数,还可以修饰是整个函数。有如下几种情况,以下会逐渐的说明用法: A& perator=(const A& a); void fun0(const A* a ); void fun1( ) const; // fun1( ) 为类成员函数 const A fun2( ); ...
编完这个矩阵类感觉收获蛮大的,关于继承与派生以前只知道原理,这次把它实现了。...在自己编的时候遇到了一些问题,比如对const使用的问题,忽略了类的const引用只能访问const成员函数等。但最后都解决了
为了保证const对象的常量性,编译器须区分不安全与安全的成员函数(即区分试图修改类对象与不修改类对象的函数)。例如: const Screen blankScreen; blankScreen.display(); // 对象的读操作 blankScre
在头文件的类的定义中定义了一个const成员变量c++ 规则: 1、类定义中不能进行初始化,因为头文件中类的定义只是一个声明,并没有分配真正空间,因此变量是不存在的,因此是不能赋值的。 2、const 定义的变量是不能...
对于成员函数,还可以修饰是整个函数。有如下几种情况,以下会逐渐的说明用法: A& perator=(const A& a); void fun0(const A* a ); void fun1( ) const; // fun1( ) 为类成员函数 const A fun2( ); ...
类Class的用法 类的构造函数和析构函数 const成员函数 this指针 对象数组