const 用法详解
1. 类的成员函数声明为const类型,在类外定义的时候,也需要添加const
2. 如果常成员函数修改了成员变量,会在编译的时候检查出来错误!
其实关于const用错的报错都是在编译阶段出现的!(大胆推测)
3. 类的对象定义为const类型之后,就只允许调用const修饰过的(常成员)函数,否则编译的时候报错;
即使有些成员函数不修改任何成员变量,没有const修饰,也无法被const类型的对象调用!
综上,const类型对象调用成员函数其实需要检查两步:
① 是否有const修饰
② 是否修改了成员变量
4. 2和3说的常成员函数不能修改成员变量,但是有一个例外:假如成员变量被mutable修饰,就可以在常成员函数中修改!
5. 普通成员函数可以调用常成员函数,常成员函数只能调用常成员函数!
const 用法详解的更多相关文章
- const用法详解(转)
http://www.cnblogs.com/StudyRush/archive/2010/10/06/1844690.html 面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也 ...
- C++中const用法详解
本文主要内容来自CSDN论坛: http://bbs.csdn.net/topics/310007610 我做了下面几点补充. 补充: 1. 用const声明全局变量时, 该变量仅在本文件内可见, 类 ...
- 十一、微信小程序-var、let、const用法详解
let命令 基本用法 ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ...
- [C/C++] const用法详解
const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰的对象为常量(immutable). 我们来分情况看语法上它该如何被使用. 1.函数体内修饰局部变量.例:void fun ...
- C++初学者 const使用详解
关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,参考了康建东兄的const使用详解一文,对其中进行了一些补充,写下了本文. 1. const常量 如: cons ...
- C语言 sscanf用法详解
/* sscanf用法详解 */ #include <stdio.h> /* sscanf头文件 */ #include <stdlib.h> #include <str ...
- Delphi TStringHelper用法详解
Delphi TStringHelper用法详解 (2013-08-27 22:45:42) 转载▼ 标签: delphi_xe5 it 分类: Delphi Delphi XE4的TStringHe ...
- C语言对文件的操作函数用法详解2
fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const ...
- C语言对文件的操作函数用法详解1
在ANSIC中,对文件的操作分为两种方式,即: 流式文件操作 I/O文件操作 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef str ...
- C# static的用法详解
C# static的用法详解 有的东西你天天在用,但未必就代表你真正了解它,正如我之前所了解的 static . 一.静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 n ...
随机推荐
- GObject学习笔记(一)类和实例
前言 最近阅读Aravis源码,其中大量运用了GObject,于是打算学习一下. 此系列笔记仅主要面向初学者,不会很深入探讨源码的细节,专注于介绍GObject的基本用法. 此系列笔记参考GObjec ...
- 鸿蒙开发Hvigor任务简介
编译构建工具DevEco Hvigor(以下简称Hvigor)是一款基于TS实现的构建任务编排工具,主要提供任务管理机制,包括任务注册编排.工程模型管理.配置管理等关键能力,提供专用于构建和测试应用的 ...
- The 2024 ICPC Asia East Continent Online Contest (I) G
Link: The Median of the Median of the Median 考虑二分答案,对中位数进行二分,每次去判断是否比中位数大即可. 我们钦定了一个中位数 \(x\),对于 \(\ ...
- 【一步步开发AI运动小程序】一、准备工作
随着人工智能技术的不断发展,阿里体育等IT大厂,推出的"乐动力"."天天跳绳"AI运动APP,让云上运动会.线上运动会.健身打卡.AI体育指导等概念空前火热.那 ...
- 鸿蒙NEXT开发案例:二维码的生成与识别
[引言] 在本篇文章中,我们将探讨如何在鸿蒙NEXT平台上实现二维码的生成与识别功能.通过使用ArkUI组件库和相关的媒体库,我们将创建一个简单的应用程序,用户可以生成二维码并扫描识别. [环境准备] ...
- 朋友要招几个java,让帮忙出点面试题目
上周朋友说要招几个高级点的java,网上那些java面试宝典已经被人背得熟透了,让帮忙出出几个面试的问题,主要看看对所使用得语言有较深入得了解,不停留在使用什么开源框架,和对自己一些项目得见解.当然还 ...
- Checking Table 设计模式 - 从概念、建模、设计到实现——兼谈基于业务需求驱动的设计模式创新
郑 先全, 架构师, NEC Asia Pacific Pte Ltd 简介: 如何基于业务需求驱动理念来开展我们的模式创新,成为了当今架构师.设计师的重要职责之一.本文通过具体的 Checking ...
- AmplifyImpostors源码阅读
首先看一下点击Bake按钮后的执行流程: 1.AmplifyImpostorInspector部分 首先点击按钮设置了bakeTexture = true if( GUILayout.Button( ...
- 关于Git上传项目报错error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413
问题 今天用Git上传项目时,最后一步push时命令行报错 error: RPC failed; HTTP 413 curl 22 The requested URL returned error: ...
- T语言开发笔记1
为什么会有开发语言的想法 在2012年,我准备开发一个给前端切图使用的屏幕取色器. 需求很简单,前端经常需要获取设计稿特定位置的颜色代码.虽然当时 PhotoShop 提供了内部取色器,但操作麻烦,而 ...