面向对象的思想
面向过程:
什么是面向过程?
根据程序的执行过程,来设计软件的所有细节。
面向过程的缺点:
开发大型项目时,越来越难以把控,甚至失去控制。
后期维护、更新成本很大。
解决方案:
使用面向对象 。
什么是面向对象?
面向对象是一种开发思想,一种全新的开发方式。
面向对象编程,最重要的第一个概念:类
定义一个“人类”:(类基本上是方法对外,不会将里面的数据对外暴露,虽然技术上是可以的。数据对外一般用struct)
默认是private
对象
构造函数
在创建一个新的对象时,自动调用的函数,用来进行“初始化”工作:
对这个对象内部的数据成员进行初始化。
特点:
构造函数的种类:
默认构造函数:没有参数的构造函数,称为默认构造函数。
1.合成的默认构造函数
当没有手动定义默认构造函数时,编译器自动为这个类定义一个构造函数。
类内初始值:c++11才支持,即在定义类的时候给定数据初始值。
2.手动定义的默认构造函数
常称为“默认构造函数”,以上面人类为例,在public方法中,写上Human();实现:
调用:Human h1;(定义对象时,自动调用)
自定义的构造函数:(自定义的重载构造函数)。在类中写(第二行):
实现:
这里如果写age=age;两个变量做覆盖,以小范围为准,所以这里两个age都是形参。或者将此函数的形参名改一下,int Age(age = Age);
this指针是指向对象本身。调用:Human h2(25, 28000); //调用自定义的构造函数
拷贝构造函数:
1.手动定义的拷贝构造函数
在类中写:Human(const Human &other); (也可以写成Human(const Human &); 一个类中只能定义一个拷贝构造函数) 实现:
调用:
Human h2 = h1; //调用拷贝构造函数
Human h3(h1); //调用拷贝构造函数
2.合成的拷贝构造函数
自动生成的拷贝构造函数。此种拷贝构造函数的缺点:”浅拷贝“
赋值构造函数
1.手动定义的赋值构造函数
类中写:Human& operator=(const Human &other); // =运算符重载 定义:
------>
2.合成的赋值构造函数
Human f1,f2; f2=f1; (注意区分Human h2 = h1拷贝构造函数) 自动调用赋值构造函数,若没有定义
赋值构造函数,则会自动生成合成的赋值构造函数。数据采用“浅拷贝”
析构函数
类中写:
实现:
析构函数是可以显示调用的,可以参考allocator类相关的destroy函数。(猜测)
类文件的分离
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?