行业知识
【C++干货基地】面向对象核心概念 | 访问限定符 | 类域 | 实例化 | 类对象模型
2026-11-06 04:03:26
来源:互联网转载
鸽芷咕:个人主页
�� 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活!
引入
哈喽各位铁汁们好啊,我是博主鸽芷咕《C++干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的城市有没有这种实惠又全面的零食基地呢?C++ 本身作为一门篇底层的一种语言,世面的免费课程大多都没有教明白。所以本篇专栏的内容全是干货让大家从底层了解C++,把更多的知识由抽象到简单通俗易懂。
⛳️ 推荐
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
文章目录
- 引入
- ⛳️ 推荐
- 一、面向对象的概念
- 1.1 类的引入
- 1.2 类的定义
- 类的俩总定义方式
- 类成员的名称规范
- 二、类的访问限定符和封装
- 2.1 访问限定符
- 2.2 封装的概念
- 2.3 类的作用域
- 三、类的实例化
- 四、类的对象模型
- 4.1 类的大小如何计算?
- 空类是如何计算的?
- 4.2 类的储存方式?
- 4.3 结构体内存对齐规则
- 文章结语:
一、面向对象的概念
哈喽大家好啊,一眨眼我们就进入了C++ 最核心的部分了。C语言我们都知道是面向过程编程,而C++和C语言最大的不同就是面向对象编程了下面我们就来看一下面向对象编程和面向过程编程的不同把:
- 面向过程
C语言都知道是面向过程,关注的是解决问题的过程比如说我们要洗衣服
需要关注这几个过程,而C++关注的是对象来解决问题
- 面向对象
C++的面向对象总共关注的是对象:洗衣服需要
- 人、衣服、洗衣机、洗衣粉
整个过程是人把衣服放到洗衣机里倒入洗衣粉然后启动就好了
并不需要我们去了解衣服究竟是如何洗的,以及如何甩干的?只需要关注对象去完成他就好了
1.1 类的引入
在C++总是兼容C语言的,以往我们结构体是只能定义结构而不能定义函数的,在C++中把结构体升级成了类结构体内不仅可以定义变量,也可以定义函数。
#define _CRT_SECURE_NO_WARNINGS 1#includeusing namespace std;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 // 类体:由成员函数和成员变量组成}; // 一定要注意后面的分号public:void Init(int year, int month, int day){_year = year;_month = month;_day = day;}void Print(){cout Date A;A.Init(2023,03,23);A.Print();return 0;}public:void Init(int year, int month, int day);void Print();int _year;int _month;int _day;};_year = year;_month = month;_day = day;}void Date::Print(){cout Date A;A.Init(2023,03,23);A.Print();return 0;}public:void Init(int year, int month, int day){year = year;month = month;day = day;}int year; int month;int day;};int main(){Date A;A.Init(2023,03,23);return 0;}public:void Init(int year, int month, int day){_year = year;_month = month;_day = day;}int _year;int _month;int _day;};int main(){Date A;A.Init(2023,03,23);return 0;}public:void PrintPersonInfo();private:char _name[20];char _gender[3];int _age;};// 这里需要指定PrintPersonInfo是属于Person这个类域void Person::PrintPersonInfo(){cout Person._age = 100; // 编译失败:error C2059: 语法错误:“.” return 0;}比};int main(){Date A;cout void Print(){cout Date A;cout
- 人、衣服、洗衣机、洗衣粉
- 面向对象
- 面向过程
上一篇:台服服务器怎么打开?
下一篇:怎么买服务器推荐的内存?