面向过程和面向对象
面向过程编程的主体是函数,他以函数为中心,自上而下,顺序执行,逐步细化
面向过程的优点:性能比面向对象高
缺点:没有面向对象易维护,易复用,易扩展
面向对象编程是以对象为中心,他要解决的问题分解成各个对象(变量,数据)而不是各个流程,步
骤,更注重对象与对象的交互(而不是方法与方法,数据与方法),步骤是分析参与问题的有哪些实
体,这些实体应该有什么属性和方法,如何通过调用这些实体的属性和方法解决问题
面向对象的优点:易维护,易复用,易扩展,由于面向对象有封装,继承,多态的特征,可以设计出低
耦合的系统,使系统更加灵活,更加易于维护
缺点:性能比面向过程低,因为类调用时需要实例化,开销比较大,消耗资源
new delete 与 malloc() free() 区别
1.new delete是关键字,malloc() free()是库函数,需要头文件支持
2.new申请的空间大小无需指定,系统根据类型自行计算,new返回的是申请类型的地址,不需要强
转。malloc()需要显示指定所申请空间的大小,且返回void*,因此需要强转为所需类型
3.new申请空间的同时可以进行初始化
//初始化
char *p1=new char('a');
int *p2=new int[3]{1,2,3};
//new 整型地址
int** p=new int *;
delete p;
p=nullptr;
//new指针数组
int** p=new int* [3];
delete[] p;
p=nullptr;
//new数组指针
int(**p)[5]=new(int(*)[5]);
delete p;
p=nullptr;
//new二维数组
int(*p)[2]=new int{{1,2},{3,4},{5,6}};
delete[]p;
p=nullptr;
4.new申请类,结构体对象内存空间会自动调用构造函数,delete会自动调用类,结构体的析构函数,
而malloc(),free()不会

被折叠的 条评论
为什么被折叠?



