【C++】类和对象(上)
温馨提示:这篇文章已超过448天没有更新,请注意相关的内容是否还可用!
👀樊梓慕:个人主页
🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C++》
🌝每一个不曾起舞的日子,都是对生命的辜负
目录
前言
1.类的引入
2.类的定义
3.类的访问限定符
4.类的作用域
5.类的实例化
6.类的存储
7.this指针
前言
接下来博主会和大家一起学习类和对象,博主会将这部分的学习分为三个部分,逐步进行,那么类和对象的第一篇文章我们就以认识类和对象为主,什么是类和对象,类和对象的发明是用来解决什么问题的,以及类和对象的一些基本概念。
欢迎大家📂收藏📂以便未来做题时可以快速找到思路,巧妙的方法可以事半功倍。
=========================================================================
GITEE相关代码:🌟fanfei_c的仓库🌟
=========================================================================
1.类的引入
- C语言是面向过程的,关注的是过程,想要完成一个任务,就需要梳理过程,然后代码实现。
- C++是面向对象的,关注的是对象,想要完成一个任务,就需要不同的角色或物体做出相应的行为,我们说这些角色或物体我们就称之为对象,他们的行为称之为方法。
C语言结构体中只能定义变量,相信你也觉得C语言在处理结构体时非常繁琐,在C++中,结构体内不仅可以定义变量,也可以定义函数。
比如:
在之前的数据结构学习中,用C语言方式实现的栈,结构体中只能定义变量;
现在以C++方式实现,会发现struct中也可以定义函数。
这样有什么优点呢?
就是结构体中的成员变量你可以直接拿来用。
不需要再某结构体指针->成员变量或某结构体.成员变量
我们来尝试实现一下栈,看看和以前有什么不同:
typedef int DataType; struct Stack { void Init(size_t capacity) { _array = (DataType*)malloc(sizeof(DataType) * capacity); if (nullptr == _array) { perror("malloc申请空间失败"); return; } _capacity = capacity; _size = 0; } void Push(const DataType& data) { // 扩容 _array[_size] = data; ++_size; } DataType Top() { return _array[_size - 1]; } void Destroy() { if (_array) { free(_array); _array = nullptr; _capacity = 0; _size = 0; } } DataType* _array;//成员变量与参数区分,习惯采用_变量名的方式来声明成员变量 size_t _capacity; size_t _size; }; int main() { Stack s; s.Init(10); s.Push(1); s.Push(2); s.Push(3); cout

