首页 > 编程语言 >C++之常函数和常对象

C++之常函数和常对象

时间:2022-08-14 09:33:27浏览次数:58  
标签:const 函数 对象 成员 C++ 之常 属性

C++之常函数和常对象

为了让this指向的成员属性值不可更改,在函数的实现前边加上const.

void showInfo() const  // 常函数 不能修改指针指向的值
{ 
	this -> m_A = 1000;
	cout << "m_A=" <<this->m_A<<endl;
	cout << "m_B=" <<this->m_B << endl;
}

如果非要在常函数中修改指针指向的属性值,在属性值前加mutable.

常对象,在对象前面加上关键字const ,这样对象的成员属性就不可更改了。

const 类名 对象名;
const Person p2;
p2.m_A = 100; // 出现错误

常对象不可以调用普通的对象成员函数,因为普通的成员函数,还是可以对成员的属性进行更改,违背了常对象不能更改成员属性的值的规则。
常对象可以调用常函数。

void show2() const{
}
p2.show2();  // 常对象不能调用普通的成员函数

常函数其实就是修饰this指针。 const Type* const this.

标签:const,函数,对象,成员,C++,之常,属性
From: https://www.cnblogs.com/lofly/p/16584812.html

相关文章

  • c语言中函数声明和调用
     001、#include<stdio.h>//以下为函数定义intmax2(inta,intb)//该句称为函数头;int表示函数返回类型;max2表示函数名;inta和intb为形参声明。{if(......
  • KMP AC自动机 Z函数
    KMPAC自动机Z函数\(s_{0..n-1}\)前缀函数\(\pi_i\)最大的\(k<i\)使得\(s_{0..k-1}=s_{i-k+1..i}\)abcabcd\(\pi_0=0\)规定的\(\pi_1=0\)\(\pi_2=0\)\(\pi_3......
  • 箭头函数与普通函数的区别
    箭头函数与普通函数的区别    letobj={      name:'对象',      sayName(){        console.log(this)//这里......
  • 静态函数和非静态函数, 以及static关键字
    【1】C++类中静态变量理解1)类里static变量特点:1、属于类本身,不属于对象2、程序的运行过程中只有一个副本3、不能在生成对象时初始化,即不能在构造函数中初始化2......
  • C++ timed_mutex
    #include<iostream>#include<thread>#include<mutex>std::timed_mutexmutex;voidmythread(){std::chrono::millisecondstimeout(100);//100msstd......
  • 函数式编程中的 Immutable 数据结构
    原视频链接:https://www.youtube.com/watch?v=Wo0qiGPSV-sbyAnjanaVakil@JSConf概述函数式编程避免了很多命令式和面向对象的编程的问题。在函数中,数据输入,......
  • cpp-函数
    目录1.基础概念形参与实参参数传递的方式函数的声明全局变量2.程序模块与文件包含命令程序模块文件包含命令3.命名空间命名空间的定义命名空间的使用4.存储类修饰符变量的......
  • Spark中group_concap替换函数concat_ws,collect_set-实现数分组后,将分组后字段连接排序
    group_concat可以在mysql中group_concat(distinctpap_srcorderbydata_date)hive中group_concat函数只能分组后连接起来,不能orderbydata_date排序spark中用conca......
  • 9.Matplotlib subplot()函数用法详解
    在使用Matplotlib绘图时,我们大多数情况下,需要将一张画布划分为若干个子区域,之后,我们就可以在这些区域上绘制不用的图形。在本节,我们将学习如何在同一画布上绘制多个子图......
  • 10.Matplotlib subplots()函数详解
    matplotlib.pyplot模块提供了一个subplots()函数,它的使用方法和subplot()函数类似。其不同之处在于,subplots()既创建了一个包含子图区域的画布,又创建了一个figure......