前不久看到这样一句话,说:C++程序员可以分成两类,读过C++程序设计语言中文的和没读过的——不知道你是属于哪类呢?
第一感觉就是:难!C++真难!以前的自己真是太浅薄了(虽然也从没认为自己多有内涵),对C++的理解真是太浅了(虽然也从没认为自己真的掌握好了C++)。很多观点都令我耳目一新:原来C++可以这么用的;而对C++的博大精深也有了更深刻了认识。
在C/C++中最令人痛苦/欣赏的就是指针了。用得好,代码简洁,程序执行效率高;用得不好,不仅容易出错,各种各样的用法也令人头痛不已。与指针相伴随的是资源管理的问题,一个new一个delete,就算是资深的程序员也不敢说自己的代码完全不会出问题。于是人们发明了智能指针,大大简化了这一方面的问题。而C#在这方面就进不了不少,垃圾回收机制解决了资源管理容易出错和内存泄漏等问题。程序员只管完成功能就行,麻烦的事情交给系统和语言机制来解决。当然事情都有两面性,系统提供的方案是普遍适用的,但在某些特殊领域,还是人工写代码来控制效率高一些。
有面向对象,必然有类的继承体系。C++ 中不支持“接口”(Interface)这个东西,于是人们用“类”(Class)来模拟。在融入virtual关键字以及一些相对(和C#直接的Interface关键字相比)复杂的技术之后,终于用类基本实现了接口的特性。读到这里不禁赞叹前人的智慧。
获取: