【C++】类和对象(上)

2024-02-26 1714阅读

温馨提示:这篇文章已超过448天没有更新,请注意相关的内容是否还可用!

【C++】类和对象(上)

👀樊梓慕:个人主页

 🎥个人专栏:《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 
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]