面向过程与面向对象
面向过程:
在编程时重点考虑如何解决问题,以及解决问题的具体步骤。
面向对象:
在编程时重点考虑的是"谁"能解决问题(类、结构),以及"它"解决问题时所需要属性(成员变量)和功能(成员函数)。
抽象:
把“解决问题者”当作思考或观察对象,把解决问题所需的具备的属性和功能罗列出来,这个步骤叫作抽象。
封装:
把抽象的结果(问题所需的具体的属性和功能),设置相应访问权限(public/private/protected),按照C++的语法设计成类、结构,该过程叫作封装类,简称封装。
使用封装好的类、结构,实例化出对象(定义结构变量、类变量),通过对象调用相关功能(成员函数)配合相关属性(成员变量)达到解决问题的目的。
继承:
1、在解决一个问题之前,先考虑现有的类是否能解决部分问题,如果有则继承该类,在此基础上进行扩展,以缩短解决问题的时间(代码复用)。
2、在解决一个复杂庞大的问题时,把问题拆分成若干个小问题,每个小问题实现一个类去解决,最后把这若干个类通过继承进行汇总,达到解决问题的目的,这个方式可以降低问题的规模在难度,也方便团队分工、协作。
多态:
语句的多种形态,同样的语句根据环境或参数的不同,有不同的功能,这就叫多态。
多态可以分为:
编译时多态,编译器在编译代码时根据语句的参数、环境不同,能翻译出具有不同功能的二进制指令,例如:调用重载的函数,cin、cout的自动类型识别,模板技术(后续讲解)。
运行时多态,语句只在程序运行时,才能确定执行那种功能,一般指的是类多态,后续再详细讲解。
#include <iostream> using namespace std; void func1(void) { cout << "我是func1函数" << endl; } void func2(void) { cout << "我是func2函数" << endl; } int main() { void (*fp)(void); int cmd; cin >> cmd; if(cmd % 2) fp = func1; else fp = func2; fp(); }标签:语句,fp,功能,封装,多态,c++,面向对象,面向,解决问题 From: https://blog.csdn.net/zzt_is_me/article/details/141966105