C++基础知识(常函数和常对象)
1、常函数 void func() const {} 常函数
2、常函数 修饰是 this指针 const Type * const this
3、常函数 不能修饰this指针指向的值
4、常对象 在对象前面加上const修饰 const Person p1
5、常对象不可以调用普通的成员函数,可以调用常函数。
6、用multable关键字修饰的成员变量在常函数中可以修改。
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;class Person
{
public:Person(){//构造中修改属性//this指针永远指向本体//const Person * const thisthis->m_A = 0;this->m_B = 0;}void showInfo() const //常函数,不允许修改指针指向的值{this->m_B = 1000;cout << "m_A=" << this->m_A << endl;cout << "m_B=" << this->m_B << endl;}void show2(){m_A = 100;}int m_A;mutable int m_B; //就算是常函数也执意要修改
};void test01()
{Person p1;p1.showInfo();//常对象,不允许修改对象属性const Person p2;//p2.m_A = 100; 报错cout << p2.m_A << endl;//p2.show2();//常对象 不可以调用普通成员函数p2.showInfo();//常对象 可以调用常函数}int main()
{test01();system("pause");return 0;
}
C++基础知识(常函数和常对象)相关推荐
- 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修饰成员函数 相关教 ...
- C++中的常函数和常对象
函数后加个const,相当于告诉编译器,该函数不会改变成员变量的值 常函数: 返回值 函数名() const{//在普通成员函数后面加上const就是常成员函数} 注意: 只有普通成员函数才能构成常函 ...
- C++(常函数、常对象)
常函数.常对象 首先明确: 常函数不能修改成员变量(可以调用,不能修改) 想要修改成员变量,必须在成员变量前加mutable关键字 常对象只能调用常函数,但是普通对象既可以调用普通函数也可以调用常函数 ...
- C++常函数和常对象学习笔记
C++常函数和常对象学习笔记 一.友元的概述 二.友元的语法 三.友元类 3.1 通过传入参数来访问类的私有成员 3.2 通过类内指针来访问类的私有成员 四.类的友元成员函数 五.友元类的注意 一.友 ...
- 常函数和常对象——c++
文章目录 常函数和常对象 常函数 常对象 总结 常函数和常对象 常函数 this指针的本质:Person* const this 就是一个指针,const的含义就是他this指针不能更换指向的对象.但 ...
- C++语法(二十)常函数、常对象
1.常函数 常函数无法修改成员变量,除非这个成员变量用mutable修饰了. #include <iostream> using namespace std;class Person{ p ...
- C++编程——常函数与常对象
文章目录 常函数: 成员函数后加const后我们称为这个函数为常函数 常函数内不可以修改成员属性 成员属性声明时加关键字mutable后,在常函数中依然可以修改 常对象: 声明对象前加const称该对 ...
- C++中的常函数与常对象
1.常函数 首先上代码: class Person { public:void showPerson() const//函数后面用const修饰了{m_Age = 20;cout << & ...
- 软考-软件设计师 - 第11章 标准化和软件知识产权基础知识【附补充常考知识点】
11.1 标准化基础知识 11.1.1 基本概念 1.标准分类: 1)根据适用范围分类: (1)国际标准 (2)国家标准 (3)区域标准 (4)行业标准 (5)企业标准 (6)项目规范 2)根据标准的 ...
最新文章
- win10红色警戒黑屏解决
- docker mysql 查找ip_Docker 查看运行服务ip
- C# 发邮件 服务器响应为: 5.7.0 Must issue a STARTTLS command first
- P1236-Network of Schools(学校网络)【最强联通块,Kosaraju】
- ad如何设置pcb板子形状_手把手教你在PCB上添加泪滴
- .html好 还是.asp好,各位说说在ASP.net里 用静态函数的好 还是实例函数出处HTML好???...
- 利用for...in...遍历js数组与Python异同
- DEL: 2012年每月花销
- opencv-api getRotationMatrix2D
- 3.Linux 高性能服务器编程 --- TCP 协议详解
- CISP考试的全过程
- xp升级windows7_试验机之液压万能试验机升级改造全国招商-机械设备-招商
- 苹果公司CEO乔布斯演讲的15个秘诀
- java axis2 jar包下载_axis2所有jar包
- 设置电脑保护视力的颜色
- http://localhost:15672无妨访问(两种情况)
- c语言弹出文本框,微信小程序弹出文本输入框
- 如何制作一个微信小程序【微信小程序是怎么做的】
- edge等浏览器打开开发者工具(F12)之后在NetWork看不到请求头等信息
- stc12c5a60s DHT11温湿度传感器
热门文章
- Mac终端自动补全及常用命令
- 2019年中科院信工所夏令营考核内容
- salt同步配置文件
- 802.11 - NDP反馈报告
- Redis从入门到集群分布式实践
- 项目一众筹网01_00_项目简介_此项目是SSM过渡到分布式项目(SpringBoot、SpringCloud)、互联网的发展引领了技术的发展、瀑布模型、敏捷开发是什么意思
- canal.deployer部署
- Springboot毕设项目健康在线服务平台26iy0(java+VUE+Mybatis+Maven+Mysql)
- antd走马灯组件自定义前进后退按钮
- CSS高级篇——渐变 (gradient)