hitmanx
2018-08-02 10:20:17 +08:00
“” C++是多范式的“”+1.
很多时候大家用的是同一个 C++,又不是同一个 C++,有些人用的只是 C with classes,有些人会用到一些高级技巧例如模板元编程,不一而足。
长期用 C++的人给我的最大的印象是对于内存的分配和管理非常敏感,比如这个内存是在栈还是在堆上,是浅拷贝还是深拷贝,指针、引用何时失效,空间是何时分配(例如 copy on write 等技术)又是何时释放的(尤其在智能指针中)。C 也有很多类似的通用的概念,但是 C++由于引入了 operator overloading 以及一些广泛应用的 smart pointers,导致这个情况要比 C 里复杂很多,比如只是简单的一个 a = b,背后会发生什么得仔细分析才知道
另外 C++11 里用 std::for_each, std::transform,std::copy_if 等配合 lambda 也可以写出**类似**函数范式的代码,map,filter,reduce 这些都不是问题,当然不是说这就是完全的函数式编程了。