`
mmdev
  • 浏览: 12890257 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

const 成员函数

 
阅读更多

任何不会修改数据成员的函数都应该声明为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_num

Pop(); // 编译错误,企图调用非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

    const成员函数、初始化列表、static成员1

    C++ 中const对象与const成员函数的实例详解

    C++ 中const对象与const成员函数的实例详解 const对象只能调用const成员函数: #include using namespace std; class A { public: void fun()const { cout<<const 成员函数!<<endl; } void fun()...

    C++成员函数后的const

    以下的每一点会给出代码示例说明  一、c++成员函数后的const有以下特点: ...  二、另外,const对象与const成员函数相关的内容  1.由const 类名构造的对象只能调用 const方法  2.const对象的构

    徐彤教程-C++编程const与static第0263讲:实例03-const成员函数

    徐彤老师耗时三年倾心制作,专业录制,通俗,细致的讲解了C++ 编程从入门到高级

    const 修饰成员函数.zip

    const 修饰成员函数

    const修饰类的成员函数

    比较好的一本学习c数据结构,算法的书,书的内容丰富。有许多代码案例,通俗易懂

    构造、析构函数

    构造函数和析构函数

    图书管理系统.cpp

    该文件是做一个简单图书管理系统项目的框架的源程序文件,用c++做好了框架,有部分的功能,其他功能需要自己添加。

    Const资料整理

    Const,Const函数,Const变量,函数后面的Const ,Const成员函数,c++仅供参考

    C++中const用于函数重载的示例代码

    (3)常成员函数不能更新类的成员变量,也不能调用该类中没有用const修饰的成员函数,只能调用常成员函数。 (4)非常量对象也可以调用常成员函数,但是如果有重载的非常成员函数则会调用非常成员函数。 重载看例子...

    C++基础,从入门到类与对象的 const修饰成员函数

    C++基础,从入门到类与对象的 const修饰成员函数

    深入理解c++常成员函数和常对象

    先明确几个概念: 1. 常对象只能调用常成员函数。 2. 普通对象可以调用全部成员函数。...在X类的const成员函数中,this指针的类型为:const X* const, 这说明this指针所指向的这种对象是不可修改的(即不能对这种

    深入理解C++中常见的关键字含义

    2. const:定义常成员,包括const数据成员和const成员函数,const数据成员必须,也只能通过构造函数的初始化列表进行初始化,const成员函数只能访问类的成员,不能进行修改,如果需要修改,则引入下面的mutable...

    const在函数声明中的应用

    对于成员函数,还可以修饰是整个函数。有如下几种情况,以下会逐渐的说明用法:  A& perator=(const A& a);  void fun0(const A* a );  void fun1( ) const; // fun1( ) 为类成员函数  const A fun2( );  ...

    矩阵类程序

    编完这个矩阵类感觉收获蛮大的,关于继承与派生以前只知道原理,这次把它实现了。...在自己编的时候遇到了一些问题,比如对const使用的问题,忽略了类的const引用只能访问const成员函数等。但最后都解决了

    C++的const类成员函数

    为了保证const对象的常量性,编译器须区分不安全与安全的成员函数(即区分试图修改类对象与不修改类对象的函数)。例如:  const Screen blankScreen;  blankScreen.display(); // 对象的读操作  blankScre

    c++ 类中const成员变量的赋值方法

    在头文件的类的定义中定义了一个const成员变量c++ 规则: 1、类定义中不能进行初始化,因为头文件中类的定义只是一个声明,并没有分配真正空间,因此变量是不存在的,因此是不能赋值的。 2、const 定义的变量是不能...

    EDA/PLD中的const在函数声明中的应用

    对于成员函数,还可以修饰是整个函数。有如下几种情况,以下会逐渐的说明用法:  A& perator=(const A& a);  void fun0(const A* a );  void fun1( ) const; // fun1( ) 为类成员函数  const A fun2( );  ...

    C++Primer Plus学习笔记(六)

    类Class的用法 类的构造函数和析构函数 const成员函数 this指针 对象数组

Global site tag (gtag.js) - Google Analytics