理解
1、面向过程、面向对象、泛型编程。
过程是topdown思维,像递归,或者动态规划里的转移方程,将问题拆解成子问题,直到可以解决。而问题规模是从大问题到子问题的唯一区别,那么通过递归解决问题规模上的转化。
过程里,有 模块 对应为class 、 调用 对应为message–通信 、records 对应为 objects 、 procedure对应着成员函数。关于数据,过程编程里的数据,直到需要才有,而对象编程里,数据是已经初始化,存放在内存。
对象则是需要将系统拆分考虑。对象自身,也就需要考虑构造、析构、new&delete、this、成员变量、成员函数,以及一些operator、重载和重写。访问级别、static、以及const。别名 – typedef。对象之间的关系,则需要考虑继承多态、以及关系,是is 还是 has。
有意思的是,function object。其实也只是正常的class,重载operator (),可以传入到泛型函数里。函数相关还有成员函数指针,也算语法糖。而引用和指针、深浅拷贝的问题,也都是语法层面的问题,本质从内存管理上去考虑就很容易理解。
函数有几种,一种是只有一个实现,一种是多种实现方式,但是input不变,另一种是input的类型也在变化。对应就可以通过默认参数、重写以及template模板,来实现。
2、
本文链接: https://satyrswang.github.io/2021/06/19/c-感受/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!