【C++系列P3】‘类与对象‘-三部曲——[基础知识](1/3)
【摘要】 前言大家好吖,欢迎来到 YY 滴 C++系列 ,热烈欢迎!【 '类与对象'-三部曲】的大纲主要内容如下:编辑如标题所示,本章是【 '类与对象'-三部曲】三章中的第一章节——基础知识章节,主要内容如下:编辑目录一. This指针1.编译器对This指针的处理本质——不允许修改this,但是允许修改this指向的值 2.This不能在形参和实参显示传递,但是可以在函数内部显示使用 3.例...
前言
- 大家好吖,欢迎来到 YY 滴 C++系列 ,热烈欢迎!
- 【 '类与对象'-三部曲】的大纲主要内容如下:
- 如标题所示,本章是【 '类与对象'-三部曲】三章中的第一章节——基础知识章节,主要内容如下:
目录
1.编译器对This指针的处理本质——不允许修改this,但是允许修改this指向的值
2.This不能在形参和实参显示传递,但是可以在函数内部显示使用
一. This指针
- This指针本质是形参,所以this指针是和普通参数一样存在函数调用的栈帧里
1.编译器对This指针的处理本质——不允许修改this,但是允许修改this指向的值
2.This不能在形参和实参显示传递,但是可以在函数内部显示使用
3.例题对比:传入空指针时,this的运作状况
重点注意:p->Print ( ) 并非解引用操作!!!
注意点:Print的地址不在对象中
二.explicit关键字
一.基本性质
用explicit修饰构造函数,将会禁止构造函数的隐式转换
代码演示:
二.相关知识补充:隐式类型转换
类型转换会产生临时变量/对象
PS:构造函数不仅可以构造与初始化对象,对于单个参数或者除第一个参数无默认值其余均有默认值的构造函数,还具有类型转换的作用
图示:
1.为什么加上"引用"无法发生隐式类型转换
PS:涉及到权限知识点————可通过传送门【】查看const知识点❀❀❀❀
图示:
三.auto关键字
【待补】
四.友元
1.友元函数
友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声明,声明时需要加friend关键字
说明:
- 友元函数可访问类的私有和保护成员,但不是类的成员函数
- 友元函数不能用const修饰
- 友元函数可以在类定义的任何地方声明,不受类访问限定符限制
- 一个函数可以是多个类的友元函数
- 友元函数的调用与普通函数的调用原理相同
- 友元函数的声明与函数声明不同,仅仅是表达权限
代码演示:
2.友元类
说明:
- 友元类的所有成员函数都可以是另一个类的友元函数,都可以访问另一个类中的非公有成员。
- 友元关系是单向的,不具有交换性。
例:比如下面Time类和Date类,在Time类中声明Date类为其友元类,那么可以在Date类中直接访问Time 类的私有成员变量,但想在Time类中访问Date类中私有的成员变量则不行。
- 友元关系不能传递 (如果B是A的友元,C是B的友元,则不能说明C时A的友元)
- 友元关系不能继承(在继承板块有详细介绍)
代码演示:
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)