| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C++之类和对象(上) -> 正文阅读 |
|
[C++知识库]C++之类和对象(上) |
文章目录1.面向过程和面向对象初步认识
因为是初学者,博主无法把这些编程思想讲得太深入,大家有兴趣可以看下面那篇文章。 2.类的引入大家都知道C++最开始叫C with Classes,意思是带类的C。所以C++最开始引入了类,你知道写C++的大佬一开始是怎么引入类的吗?他是用struct来引入的。
这个时候,可能有小可爱要问了,为什么成员变量声明在函数后面,C++编译器编译时不是向上找的吗? 3.类的定义虽然C++可以用struct做类,但是C++还是更喜欢用一个新的关键字:
class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号。 这个时候Student就是类型,s2我们以前喜欢叫它变量,但是从现在开始,我们就不喜欢叫变量了,我们喜欢叫它对象。 4.类的访问限定符及封装4.1.访问限定符C++中有一个概念叫封装,那它就提出一个东西叫访问限定符,它的意思是我类里面的东西不是全部都可以给外部用户访问或者使用的。 访问限定符除了public、private,还有一个protected。现阶段我们认为protected和private是一样的,protected和private修饰的成员在类外不能直接被访问。 我们以后学到继承的时候,它们的意义就不一样。
4.2 封装**面向对象的三大特性:封装、继承、多态。**继承和多态是我们以后要学的,我们今天先来讲一讲封装。
封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。 5.类的作用域类定义了一个新的作用域,类的所有成员都在类的作用域中。在类体外定义成员,需要使用 :: 作用域解析符指明成员属于哪个类域。这个和命名空间域类似。
那么大家想想这两个Push能同时存在吗?ok,可以,因为它俩不在同一个作用域,分别属于不同的两个类域。 如果我们写项目,代码多一些的时候,我们要声明和定义分离。像C语言我们在.h文件里可以看见数据的结构、我定义了哪些函数、我定义了哪些宏等等。我们想看具体实现时,我们才会去看.c文件。 当然短小函数你也可以直接在类里面定义: 6.类的实例化那么再问大家另外一个问题,我们写的类里面的成员变量是声明还是定义?
7.类对象模型7.1 如何计算类对象的大小大家想想我们刚才写的栈类是多大呢?类中既可以有成员变量,又可以有成员函数,那么一个类的对象中包含了什么?如何计算一个类的大小?我们先来看看结果: 7.2类对象的存储方式通过结果来看,类对象的存储方式是只保存成员变量,成员函数存放在公共的代码段。 结论:一个类的大小,实际就是该类中”成员变量”之和,当然也要进行内存对齐,注意空类的大小,空类比较特殊,编译器给了空类一个字节(不是为了存储有效数据,而是占位,表示对象存在过)来唯一标识这个类。 7.3 结构体内存对齐规则这个其实学习结构体时我们就讲过了,复习一下:
8.this指针8.1 this指针的引出我们先来定义一个日期类Date
8.2 this指针的特性this指针处理后是这样:
大家再来看看两道面试题:
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 18:31:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |