首页 > 其他分享 >const对象分析

const对象分析

时间:2023-03-24 18:31:27浏览次数:34  
标签:分析 内嵌 const 修改 对象 int 指针

const定义一个常量,常量定义以后就不能被修改。

1 class A {
 2 public:
 3     int a;
 4     int * b;
 5     int &c;
 6     A(): a(1), b(new int(1)), c(*new int(1)) {}
 7 };
 8 
 9 
10 int _tmain(int argc, _TCHAR* argv[])
11 {
12     //std::cout << sizeof(A);
13     const A a_obj;
14     //a.a = 1;
15     //a.b = new int(2);
16     a_obj.c = 2;
17 
18     *a_obj.b = 2;
19     std::cout << a_obj.c << *a_obj.b;
20     return 0;
21 }

  看这份代码,当创建一个const A对象时,A对象范围内的任意一个字节都不可以修改,也就是说,任何内嵌对象(不是通过new出来的)的值都不可以修改,如果在A对象中放的不是内嵌对象那就是放对象的指针,那么对象的指针属于A的一部分,而指针指向的地址的对象和A无关,所以虽然不可以修改地址但可以修改地址指向对象的值。

const对象分析_const对象分析

int a的值内嵌在对象内部其值不可以改,int *b对象的指针在也内嵌在A对象内部,int &c同理;可以修改int b和int c对象的值。

 综上:只要确信修改的值,没内嵌在声明为const的对象中,那么改值就可以修改。扩大范围(不局限于const对象),被修饰为const的的那块内存区域,中的任一位都不可以被修改。

write by fgd



标签:分析,内嵌,const,修改,对象,int,指针
From: https://blog.51cto.com/u_7772051/6147655

相关文章

  • JavaScript 面向对象
    类和对象类是用于定义对象的模板或蓝图;它包含对象的属性和方法,我们可以使用class关键字来定义类。classPerson{constructor(name,age){this.name=name;t......
  • MyBatisPlus插件扩展_SqlExplainInterceptor执行分析插件的使用
    简介SQL执行分析拦截器【目前只支持MYSQL-5.6.3以上版本】,作用是分析处理DELETEUPDATE语句,防止小白或者恶意deleteupdate全表操作!com.baomidou.mybatisplus.pl......
  • MyBatisPlus插件扩展_PerformanceInterceptor性能分析插件的使用
    简介性能分析拦截器,用于输出每条SQL语句及其执行时间参数:maxTimeSQL执行最大时长,超过自动停止运行,有助于发现问题。参数:formatSQLSQL是否格式化,默认false。实现来到......
  • 创建对象的底层分析
    Java是一门面向对象的编程语言,Java程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象通常(例外:复制、反序列化)仅仅是一个new关键字而已,而在虚拟机中,对象(文中......
  • RunnerGo与JMeter在产品设计方面的比较分析
    当谈到对于性能测试的需求时,JMeter和RunnerGo在测试场景设置、执行性能测试、性能测试结果分析等方面都提供了很多功能,但两个工具的结构方面仍然存在一些区别。以下是详细的......
  • RunnerGo与JMeter在产品设计方面的比较分析
    当谈到对于性能测试的需求时,JMeter和RunnerGo在测试场景设置、执行性能测试、性能测试结果分析等方面都提供了很多功能,但两个工具的结构方面仍然存在一些区别。以下是详细......
  • .Net 6.0定义全局当前身份缓存对象
    背景:当前身份缓存对象顾名思义就是:当前登录的用户身份对象,那它解决了什么问题呢?其实在我们日常开发过程中经常能用的到几乎是必备的,就比如我给某个表插入数据时......
  • vue全家桶进阶之路5:DOM文档对象模型
     一、DOM对象DOM,全称“DocumentObjectModel(文档对象模型)”,它是由W3C组织定义的一个标准。在前端开发时,我们往往需要在页面某个地方添加一个元素或者删除元素......
  • 数字IC低功耗分析
    前言:为什么要降低芯片功耗芯片封装都较小,如果功耗过大,则能量密度太大功耗影响到芯片内部甚至外部的电源网络架构设计高功率带来温度提升,会使性能受影响,时序跑不高面向数......
  • flask-上下文对象-手动开启上下文
    1、请求上下文requestcontext 总结:请求上下文:request:获取请求信息,比如表单参数、查询字符串等session:操作用户会话信息,session['key']=value.session.get('key')......