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

湖北网站建设搭建网站建设广州公司

湖北网站建设搭建,网站建设广州公司,wordpress显示作者,免费凡科网站个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. const成员3. 取地址及const取地址操作符重载 1. 前言 在之前已经已经分享过了关于 【C】类和对象之常引用与运算符重载,这次分享的有关const的内容,话不多说,正文开始。…

个人主页 : zxctscl
如有转载请先通知

文章目录

  • 1. 前言
  • 2. const成员
  • 3. 取地址及const取地址操作符重载

1. 前言

在之前已经已经分享过了关于 【C++】类和对象之常引用与运算符重载,这次分享的有关const的内容,话不多说,正文开始。

2. const成员

将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。
在这里插入图片描述
看看下面的代码

class Date
{
public:Date(int year, int month, int day){_year = year;_month = month;_day = day;}void Print(){cout << _year << "/" << _month << "/" << _day << endl;}private:int _year; int _month; int _day; 
};
int main()
{const Date d1(2024, 1, 1);d1.Print();return 0;
}

在这里插入图片描述
在这里为什么不能调用printf呢?
在这里插入图片描述
为了解决这个问题在函数后面加const
在这里插入图片描述
这个是权限的平移。
在这里插入图片描述

#include <iostream>
using namespace std;class Date
{
public:Date(int year, int month, int day){_year = year;_month = month;_day = day;}void Print()const{cout << _year << "/" << _month << "/" << _day << endl;}private:int _year;int _month;int _day;
};int main()
{const Date d1(2024, 1, 31);d1.Print();Date d2(2024, 3, 31);d2.Print();return 0;
}

如果是像d2呢?
在这里插入图片描述
也可以用printf,这里是权限的缩小。

在这里插入图片描述
并不是所有的函数都能加上const。
总之:
成员函数,如果是一个对成员变量只进行读访问的函数,建议加const,这样const对象和非const对象都能使用。
成员函数,如果是一个对成员变量进行读写访问的函数,不加const,否则不能修改成员变量。
在这里插入图片描述
下面代码是权限放大吗?
不是,这里是拷贝,j的改变不影响i,也不存在所谓的权限方法。
在这里插入图片描述

这个才是权限的放大,r的改变影响i。
在这里插入图片描述

在这里插入图片描述
p2的改变会影响p1,也就是i。

权限的放大:指针和引用赋值才存在权限放大。
在这里插入图片描述

来看看下面的几个问题:

  1. const对象可以调用非const成员函数吗?
    不行,权限放大了

  2. 非const对象可以调用const成员函数吗?
    可以,这里权限缩小

  3. const成员函数内可以调用其它的非const成员函数吗?
    不行,权限放大了

  4. 非const成员函数内可以调用其它的const成员函数吗?
    可以,这里是权限的缩小

3. 取地址及const取地址操作符重载

在这里插入图片描述
如果&不是默认成员函数,那么重载才能使用。
如果每次使用都要重载,那么编译器就直接默认生成。
在这里插入图片描述

这两个默认成员函数一般不用重新定义 ,编译器默认会生成,不需要自己写,日常已经够用了。

class Date
{
public:Date* operator&(){return this;}const Date* operator&()const{return this;}
private:int _year; // 年int _month; // 月int _day; // 日
};

这两个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可。

只有特殊情况,才需要重载,比如想让别人获取到指定的内容!
像这样普通对象能拿地址,const对象不能拿地址。
在这里插入图片描述

在这里插入图片描述

有问题请指出,大家一起进步!!!

http://www.sczhlp.com/news/96517/

相关文章:

  • 怎么在word上做超链接网站宁波制作网站公司
  • 威联通231p做网站手机上编写html的软件
  • 云斗八月银组做题记录
  • 中职课程网站建设与管理seo推广的常见目的有
  • 建网站的公司服务wordpress上传的gif图不会动
  • 茶叶企业网站源码美御品牌推广
  • 网站制作器手机版徐州经济开发区网站
  • 详细介绍:24年秋招-京东-后端开发岗-第1批笔试总结
  • 深入解析:中国AI云市场报告:阿里云份额达35.8%,高于2至4名总和
  • 石家庄专业做网站公司网站建设策略营销
  • 广州网页设计网站源码超市网站源码
  • 网站建设制作经验足移动端是指手机吗
  • 做百度网站排对网络营销的认识有哪些
  • 服务器网站跳转怎么做网站建设有什么服务
  • 网站建设考试卷a卷适合大学生做的网站
  • 承德网站建设wordpress打赏积分
  • 珠海做快照网站电话建站网站有哪些
  • 付费阅读网站代码用html制作百度首页
  • 重庆家居网站制作公司dedecms 网站迁移
  • 关于前端的一些疑问整理2(选择器)
  • 模拟散列表(哈希表)
  • 东莞专业网站建设服务最好的ppt模板网站
  • 海口网站开发制作国外免费服务器ip大全
  • 个人网站建设报价wordpress婚礼主题
  • 免费客户管理软件排行昆明seo网站推广
  • 中国海员建设工会网站php 手机网站
  • 网站建设指导思想宣传网站怎么做
  • 南昌网站全新开发网站排名推广自己怎么做
  • 小型网站开发语言免费封面设计在线制作生成
  • 旬阳县建设局网站用vs2010做购物网站