首页 > 其他分享 >const修饰成员函数,常函数,常对象

const修饰成员函数,常函数,常对象

时间:2022-09-21 18:58:54浏览次数:51  
标签:const 函数 对象 修改 修饰 指针

设计关键字:const、mutable

常函数:

- 成员函数后面加const,就是常函数

- 常函数里面不能修改成员变量的值

- 成员变量加mutable修饰,在常函数中可以修改

 

常对象:

- 声明对象前加入const进行修饰,即常对象

- 常对象只能调用常函数

 

class Person {
public:
    Person() {
        m_A = 0;
        m_B = 0;
    }

    //this指针的本质是一个指针常量,指针的指向不可修改
    //如果想让指针指向的值也不可以修改,需要声明常函数
    void ShowPerson() const {
        //const Type* const pointer;
        //this = NULL; //不能修改指针的指向 Person* const this;
        //this->mA = 100; //但是this指针指向的对象的数据是可以修改的

        //const修饰成员函数,表示指针指向的内存空间的数据不能修改,除了mutable修饰的变量
        this->m_B = 100;
    }

    void MyFunc() const {
        //mA = 10000;
    }

public:
    int m_A;
    mutable int m_B; //可修改 可变的
};


//const修饰对象  常对象
void test01() {

    const Person person; //常量对象
    cout << person.m_A << endl;
    //person.mA = 100; //常对象不能修改成员变量的值,但是可以访问
    // person.m_B = 100; //但是常对象可以修改mutable修饰成员变量
    person.ShowPerson();
    cout << person.m_B << endl;
    //常对象访问成员函数
    person.MyFunc(); //常对象不能调用const的函数

}

int main() {

    test01();

    return 0;
}

 

标签:const,函数,对象,修改,修饰,指针
From: https://www.cnblogs.com/henabo/p/16716762.html

相关文章

  • 【SQL 编程你也行】SQL Server 2012新功能之函数:转换函数
    在SQLServer2012中,新增了几个转换函数,用于支持数据类型的强制转化。由于之前主要用的是SQLServer2008R2,而公司的项目为了提高开发效率,很多表的列都为varchar类型,但也......
  • MySQL索引查询条件使用函数导致索引失效
     索引失效EXPLAINSELECTdt.nameASdeviceName,su.`name`ASuserName,date_format(co.upload_time,'%Y%m%d')astimeFROMtb_cust_ordercoI......
  • 寄存器与函数栈帧
    每一个函数独占自己的栈帧空间。当前正在运行的函数的栈帧总是在栈顶。Win32系统提供两个特殊的寄存器用于标识位于系统栈顶端的栈帧。(1)ESP:栈指针寄存器(extendedstackp......
  • Python学习:转义字符及用法、数据类型转换函数
    ASCII编码为每个字符都分配了唯一的编号,成为编码值。在Python中,一个ASCII字符除了可以用它的实体(真正的字符)表示,还可以用它的编码值表示。这种使用编码值来间接地表示字符......
  • JS 动态获取 Url 参数(封装函数)
     话不多说直接上代码:封装函数如下:(如果urls固定,可以只写一个name变量)getQueryString(name,urls){varurl=urls;//获取URL......
  • Deep Spatial Feature Reconstruction for Partial Person Re-identification: Alignm
    摘要本文介绍的是Partialpersonre-identification(基于部分身体的行人重检测)。这是一个很有挑战性的问题,因为只有完整行人的一部分可以获得用来进行匹配。但是它具有很高......
  • js 中常用的format函数
    js中经常要写dom和数据拼接的情况,下面这种format传参方式可以解决。$.format=function(source,params){if(arguments.length==1)returnfunctio......
  • 03:TypeScript — 从初学者到专家 |对象、数组和函数
    03:TypeScript—从初学者到专家|对象、数组和函数级别:初学者我们已经了解了什么是变量以及如何使用语句设置它们。我们还看到了可用于指定值类型的不同原始类型。当我......
  • 使用这些内置函数提升您的 JavaScript 技能!
    使用这些内置函数提升您的JavaScript技能!Pexels上的JoshHild拍摄的照片[标准内置对象-JavaScript|MDN本章记录了JavaScript的所有标准内置对象,包括它们......
  • 映射函数map()
    map()是Python内置的高阶函数,它接收一个函数f 和一个 list,并通过把函数f依次作用在list的每个元素上,得到一个新的list并返回deff(x):returnx*xprint(l......