常函数

  • const修饰成员函数

const修饰成员函数

  • 常函数:
    1、成员函数后加const后我们称这个函数为常函数
    2、常函数不可以修改成员属性。
    3、成员属性声明时加关键字mutable后,在常函数中依然可以修改。
  • 常对象:
    1、声明对象前加const称该对象为长对象。
    2、长对象只能调用长函数。
#include <iostream>
using namespace std;
class person {public:void personshow() const {//常函数
//      this->m_age = 100;常函数中不可修改 this->n_age = 200; //有mutable关键字可以修改。
//      this = NULL;this指针本质指针常量,明确指向后不可修改。 }void func(){}//普通函数int m_age;mutable int n_age;//加上关键字后可在常函数中修改其值。
};
void test01() {person p1;p1.personshow();
}
void test02() {const person p2;//常对象
//  p2.m_age = 100;不可以修改p2.n_age = 200;//有mutable关键字可修改p2.personshow();//可以调用,常对象可以调用常函数
//  p2.func();不可调用,常对象不能调用普通成员函数,因为普通成员函数可以修改成员属性
}
int main(void)
{test01();test02();return 0;
}

C++ 常函数(const修饰成员函数)相关推荐

  1. c/c++教程 - 2.4.3 this指针作用,链式编程思想,空指针访问成员函数,const修饰成员函数,常函数,常对象

    目录 4.3 C++对象模型和this指针 4.3.1 成员变量和成员函数分开存储 4.3.2 this指针概念(非常重要) 4.3.3 空指针访问成员函数 4.3.4 const修饰成员函数 相关教 ...

  2. C++基础08-this指针-const修饰成员函数-函数返回引用/值

    一.this指针 1.C++类对象中的成员变量和成员函数是分开存储的.C语言中的内存四区模型仍然有效! 2.C++中类的普通成员函数都隐式包含一个指向当前对象的this指针. 3.静态成员函数.成员变 ...

  3. const修饰成员函数总结

    const修饰成员函数有两个理由 1 让类的接口更容易理解,因为这可以方便程序员知道那个函数可以改变对象内容,而那个函数不能改. 2 让类能够操作const对象. 有一个非常重要的C++特性是 两个成 ...

  4. C++学习笔记(十)成员变量和成员函数分开存储、this指针、空指针访问成员函数、const修饰成员函数、友元

    1.成员变量和成员函数分开存储 //1.在C++中,类内的成员变量和成员函数分开存储 //2.只有非静态成员变量才属于类的对象上 //空对象占用内存空间为:1 //C++编译器会给每个空对象也分配一个 ...

  5. 类和对象—对象特性—const修饰成员函数

    常函数: 成员函数后加const后我们称这个函数为常函数 常函数内不可以修改成员属性 成员属性声明时加关键词mutable 后在常函数中依然可以修改 常对象 声明对象前加 const称该对象为常对象 ...

  6. C++const修饰成员函数

    C++全局函数做友元 常函数 常对象 示例 常函数 成员函数后加const后我们称为这个函数为常函数 常函数内不可以修改成员属性 成员属性声明时加关键字mutable后,在常函数中依然可以修改 常对象 ...

  7. 简单总结 常(常量/const)成员函数 and 常对象的使用

    一.常(常量/const)成员函数 在函数定义式()后 + const 比如: class Rational { public://非常成员函数void func() { cout << ...

  8. 为什么不能同时用const和static修饰成员函数?

    const修饰的函数: 表示在该函数体内不能修改成员的值,会在函数中添加一个隐式的参数const this*. static修饰的函数没有this指针,与const的用法冲突. 但可以使用static ...

  9. C++ const对成员函数的修饰 及 取地址及const取地址操作符重载

    const对成员函数的修饰 将const修饰的类成员函数称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this 指针,表明在该成员函数中不能对类的任何成员进行修改. 格式 ...

最新文章

  1. MSSQL2000 数据库文件迁移到 MSSQL2005 可能要用的一些命令
  2. RabbitMQ官方中文入门教程(PHP版) 第三部分:发布/订阅(Publish/Subscribe)
  3. Redis源码学习-MasterSlave的命令交互
  4. 2D空间中基于矢量运算的碰撞后效果as3源码
  5. 对lua协程的一点理解
  6. python学习第25天
  7. 解决 PhpStorm 对 用单例模式实例化PHP类时,代码自动提示功能失效 的问题
  8. Vue源码解读之事件机制
  9. 当攻击者采用新型逃避技术——“域遮蔽” 企业该如何应对?
  10. Flink 在人工智能领域的应用实践
  11. Linux常用快捷键命令
  12. 小猪短租网requests库使用
  13. MongoDB数据库开发环境搭建与配置,Windows环境下
  14. iPad 3发布在即,各平板优势大比拼
  15. 入手索尼WH-1000XM5头戴式降噪耳机,开启玩得尽兴、学得开心的新学期
  16. 线段树 树状数组 离散化相关例题
  17. 数据分析——DAU下降问题(转)
  18. 计算机图形学 实验6 直线的裁剪—Cohen Sutherland裁剪算法(MFC中)
  19. 微信小程序--瀑布流加载
  20. MyEclipse如何配置Tomcat

热门文章

  1. 【应急案例】Linux应急记录
  2. ADI DSP开发环境 CCES下的程序加载过程
  3. 报错 File was processed with these loaders:
  4. mysql下载64位免安装_windows 安装MySQL 5.7.19【免安装版】
  5. 基于搜索指数可视化分析近十年的中秋热度
  6. 关于iOS Widget(Locket Widget App)
  7. 人文社科与AI交叉融合?人大这个学院够新颖
  8. 【码蹄集新手村 600 题】用符号输出一个沙漏的图像
  9. 管理综合联考可以用计算机嘛,考试可以带计算器吗?可以带草稿纸吗?
  10. ant-design-vue3.2.6 图片预览,旋转,放大缩小