面向对象的思想
面向过程:
什么是面向过程?
根据程序的执行过程,来设计软件的所有细节。
面向过程的缺点:
开发大型项目时,越来越难以把控,甚至失去控制。
后期维护、更新成本很大。
解决方案:
使用面向对象 。
什么是面向对象?
面向对象是一种开发思想,一种全新的开发方式。
面向对象编程,最重要的第一个概念:类



定义一个“人类”:(类基本上是方法对外,不会将里面的数据对外暴露,虽然技术上是可以的。数据对外一般用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函数。(猜测)
类文件的分离

浙公网安备 33010602011771号