文章目录


常函数:

  • 成员函数后加const后我们称为这个函数为常函数
  • 常函数内不可以修改成员属性
  • 成员属性声明时加关键字mutable后,在常函数中依然可以修改

常对象:

  • 声明对象前加const称该对象为常对象
  • 常对象只能调用常函数

示例

class Person
{public://this指针的本质是指针常量 指针的指向是不可以修改的//在成员函数后面加const,修饰的是this指针,让指针指向的值也不可以修改void showPerson() const  //加const等价于const Person* const this;{this->m_B = 100;//this->m_A = 100;//this = NULL;  //this指针不可以修改指针的指向,当创建一个对象后,this指针就指向了该对象,不能指向其他的地方}void func(){}int m_A;mutable int m_B; //特殊变量,即使在常函数中,也可以修改这个值,加mutable
};void test()
{const Person p; //在对象前加const,变为常对象// p.m_A = 100;p.m_B = 100; //m_B是特殊值,在常对象下也可以修改//常对象只能调用常函数p.showPerson();p.func(); //常对象不可以调用普通成员函数,因为普通成员函数可以修改属性
}

C++编程——常函数与常对象相关推荐

  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++中的常函数和常对象

    函数后加个const,相当于告诉编译器,该函数不会改变成员变量的值 常函数: 返回值 函数名() const{//在普通成员函数后面加上const就是常成员函数} 注意: 只有普通成员函数才能构成常函 ...

  3. C++(常函数、常对象)

    常函数.常对象 首先明确: 常函数不能修改成员变量(可以调用,不能修改) 想要修改成员变量,必须在成员变量前加mutable关键字 常对象只能调用常函数,但是普通对象既可以调用普通函数也可以调用常函数 ...

  4. C++常函数和常对象学习笔记

    C++常函数和常对象学习笔记 一.友元的概述 二.友元的语法 三.友元类 3.1 通过传入参数来访问类的私有成员 3.2 通过类内指针来访问类的私有成员 四.类的友元成员函数 五.友元类的注意 一.友 ...

  5. 常函数和常对象——c++

    文章目录 常函数和常对象 常函数 常对象 总结 常函数和常对象 常函数 this指针的本质:Person* const this 就是一个指针,const的含义就是他this指针不能更换指向的对象.但 ...

  6. C++语法(二十)常函数、常对象

    1.常函数 常函数无法修改成员变量,除非这个成员变量用mutable修饰了. #include <iostream> using namespace std;class Person{ p ...

  7. C++基础知识(常函数和常对象)

    1.常函数  void func()  const {}  常函数 2.常函数  修饰是 this指针  const Type * const this 3.常函数  不能修饰this指针指向的值 4 ...

  8. C++中的常函数与常对象

    1.常函数 首先上代码: class Person { public:void showPerson() const//函数后面用const修饰了{m_Age = 20;cout << & ...

  9. 常对象与常函数(Const修饰的对象与成员函数)

    常函数: 其定义与注意事项如下:     1.成员函数后加const后,我们称这个函数为常函数     2.常函数内不可修改成员属性     3.成员属性声明时加关键字mutable后,在常函数中依然 ...

最新文章

  1. 你负责人工智能哪部分?人工那部分:知识图谱的构建主要靠人工还是机器?...
  2. oracle无法打开表的行集,Oracle错误ORA-22905:无法访问非嵌套表项中的行
  3. quick cocos2d-x 使用CCTableView 例子
  4. php-fpm 参数及配置详解
  5. python arm64_PyTorch-aarch64
  6. 简单配置基于桥接,RIP,NAT,PAT的网络拓扑
  7. PYTHON自动化Day4-交换变量,字符串方法,拷贝,集合,文件,文件指针
  8. 【渝粤题库】广东开放大学 商务办公软件应用与实践 形成性考核
  9. TCPDUMP/LIBPCAP 3-PCAP 中文手册(1)
  10. 026_lsof命令经验总结
  11. Class.forName和ClassLoader
  12. MySQL学习-MySQL数据库事务
  13. Pulling without specifying how to reconcile divergent branches is discouraged.
  14. 球的表面积公式是怎么推导出来的?
  15. 灰灰考研机试班 | 基础练习二 问题 B: 日历本 | 入门题-模拟 | 日期、星期相关计算
  16. 强化学习入门项目spinning up(1)安装
  17. 什么是沾包?如何处理?
  18. 微服务商城系统(十四)微信支付
  19. c++语言绝对值函数,由C++绝对值函数想到的 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  20. nextdate函数 c语言,【Nextdate|Nextdate函数的黑盒测试】

热门文章

  1. react项目中集成ckplayer播放器插件
  2. 【阿里云镜像】更改阿里巴巴开源镜像站镜像源之——CentOS 7
  3. mingw 构建 mysql-connector-c-6.1.9记录
  4. 台媒:台积电预计在台湾新竹建设使用2纳米制程的工厂
  5. Redux使用详解(二)--react-redux的使用
  6. url的post请求 Content-Type:application/json类型 Java后端接收(^_^)
  7. 图片点击放大,并显示浮层
  8. 基于java+springboot+mybatis+vue+elementui的小区停车位租赁网站
  9. 颠覆传统下载体验 QNAP迅雷系列NAS重磅登场
  10. 全球首个TD-LTE演示网今日上海正式开通,金山瑞星同日发布“云安全”产品(每日关注:20100415)...