当前位置: 首页 > news >正文

dw网站建设字体颜色连江网站建设服务

dw网站建设字体颜色,连江网站建设服务,成都旅游必去的地方,动物网站建设常函数: 成员函数后加const后我们称为这个函数为常函数常函数内不可以修改成员属性成员属性声明时加关键字mutable后,在常函数中依然可以修改 常对象: 声明对象前加const称该对象为常对象常对象只能调用常函数 一、this指针本质 this指针…

常函数:

  • 成员函数后加const后我们称为这个函数为常函数
  • 常函数内不可以修改成员属性
  • 成员属性声明时加关键字mutable后,在常函数中依然可以修改

常对象:

  • 声明对象前加const称该对象为常对象
  • 常对象只能调用常函数


一、this指针本质

this指针的本质是一个指针常量,Person * const this。const修饰的是 “this”, 指针的值不可以改,即指针的指向不可以改,但指针指向的对象的值可以改。

在这里插入图片描述

成员函数ShowPerson的定义是:

void ShowPerson()  {//this = NULL;     	// 指针的指向不可以改,this = NULL非法。this->m_B = 100;	// 指针指向的对象的值可以改,合法。
}

c++把它处理为:

//this指针的本质是一个指针常量,指针的指向不可修改
//Person * const this = &p
void Person :: ShowPerson(Person * this)  {//this = NULL;     	// 指针的指向不可以改,this = NULL非法。this->m_B = 100;	// 指针指向的对象的值可以改,合法。
}

实际的调用方式为:

Person p;p.ShowPerson(&p);



二、常函数

ShowPerson() 函数后面添加 const 关键字,const Person * const this ,是指向常量的常量指针。指针的指向不可以改,指针指向的值也不可以改。

在这里插入图片描述

常成员函数可以访问常对象中的数据成员,但仍不允许修改常对象中数据成员的值。

class Person {
public://如果想让指针指向的值也不可以修改,需要声明常函数//const  Person * const thisvoid ShowPerson()  const{this = NULL;			// 指针的指向不可以改this->m_B = 100;		// 指针的指向对象的值也不可以改}public:int m_A;int m_B; //可修改 可变的
};void test01() {Person p; p.ShowPerson();
}



三、mutable关键字

加mutable关键字,即使在常函数中,也可以修改这个值。

在这里插入图片描述

class Person {
public://const  Person * const thisvoid ShowPerson()  const{this = NULL;this->m_B = 100;		}public:int m_A;mutable int m_B; // 加mutable关键字,即使在常函数中,也可以修改这个值。
};



四、常对象

加mutable关键字,即使在常对象中,也可以修改这个值。

在这里插入图片描述

class Person {
public://const  Person * const thisvoid ShowPerson()  const{this = NULL;this->m_B = 100;		}public:int m_A;mutable int m_B;	// 加mutable关键字,即使在常函数中,也可以修改这个值。
};//const修饰对象  常对象
void test02() {const Person p;		// 常量对象  p.m_B = 100;		// 加mutable关键字,即使在常对象中,也可以修改这个值。p.m_A = 100;	
}



五、常对象只能调用常函数

常对象 不可以调用普通成员函数,因为普通成员函数可以修改属性。

在这里插入图片描述

class Person {
public://const  Person * const thisvoid ShowPerson()  const{	this = NULL;this->m_B = 100;		}void func() {m_A = 100;		// 如果常对象能调用这个普通函数,那么就可以间接地修改常对象的属性,矛盾。}public:int m_A;mutable int m_B;	// 加mutable关键字,即使在常函数中,也可以修改这个值。
};// const修饰对象,表示一个只读状态  常对象本身不可以修改属性  
void test03() {const Person p;		// 常对象p.ShowPerson();		// 常对象只能调用常成员函数。p.func();			// 常对象 不可以调用普通成员函数,因为普通成员函数可以修改属性。
}




http://www.yayakq.cn/news/420197/

相关文章:

  • 自助下单网站怎么做美食的网站
  • 网站建设合同补充协议怎么写做网站一般注意些什么
  • 做网站都需要什么贴吧容桂企业网站建设
  • 正规的网站制作哪家好全国中小企业服务平台
  • 空壳主体接入网站个人网站的建设目标
  • 苏州建设局网站传播型网站建设优势有哪些
  • 有什么设计网站网站设计需求书
  • 广州开发网站报价网站关键词推广优化
  • 桓台县城乡建设局网站WordPress与前端
  • 河北建设执业信息网站蔚县网站建设公司
  • 网站建设网站免费培训机构加盟店排行榜
  • 做货代在哪个网站找客源网站一次性链接怎么做的
  • 泰州专业做网站南宁市制作网站的公司
  • 如何做网站推广下拉刘贺稳14python 网站开发 sae
  • 网站定制页面调整至居中邢台信息港最新二手房出售信息
  • 自设计网站东莞建设局网站
  • 网站备案好弄吗成都设计公司工作室
  • 专门做排行的网站微信可以怎么创建账户网站
  • 深圳网站建设V芯ee8888e做网站需要商标注册吗
  • 杭州企业网站建设方案wordpress模板 论坛
  • 学做网站php房地产十大营销手段
  • 广东网站建设专业公司什么软件制作图片
  • 怎么把网站提交给搜索引擎免费广告制作软件
  • 加强政务门户网站建设wordpress怎么手动更新
  • 法语网站建站公司君哥摄影设计
  • 哪做网站比较好wordpress 交友模板
  • 如何制作建筑公司网站北京景网站建设
  • 网站源码如何保存箱包官方网站模板
  • 网站公司文化怎么做怎么用手机自己做网站
  • 蓟州区建设银行官方网站深圳市做网站设计