我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:六合公式 > 仿函数 >

编程必须明确清楚这几点学习C语言和C

归档日期:05-02       文本归类:仿函数      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  将C++视为C、面向对象C++、模版C++、STL C++组成的语言联邦。

  多采用敏捷的设计方法(个体和交互胜过过程和工具、可以工作的软件胜过面面俱到的文档、客户合作胜过合同谈判、响应变化胜过遵循计划)

  每隔一段时间,团队会在如何才能更有效的工作方面进行反省,然后相应的对自己的行为进行调整

  尽可能的保证:抽象不应该依赖于细节,细节应该依赖于抽象(任何变量都不应该持有一个指向具体类的指针或引用;任何类都不应该从具体类派生;任何方法都不应该覆写它的任何基类中已经实现了的方法)

  每个编程单元尽可能的向使用者提供使用承诺:例如资源回收保证、数据一致性保证、无异常保证

  尽可能的在程序中处理所有可能的异常,而且尽可能的精细。(try...catch)

  慎重使用inline(小函数的确该用inline,但是考虑到inline函数无法调试,所以应谨慎)

  确定public继承表现出is-a关系(即Liskov替换原则,永远可以用派生类取代基类)

  避免覆盖继承而来的名称(基类函数重载,派生不重载,则其他覆盖;派生重载基类函数,则基类函数覆盖;变量也可以覆盖)

  区别接口继承和实现继承(纯接口(virtual=0),接口+朴素实现(virtual=0+实现),接口+强制实现(non-virtual),以上为public继承,private继承全部是为了继承实现,而不继承接口)

  private继承意味着继承实现,是composition,实现的是has-a逻辑。protected继承尽量少用。两种继承在设计层面完全没有意义,只是实现层面的代码重用。

  如果类内new了对象,并且该类负责delete,则必须要定义拷贝构造函数和赋值操作符。

  若不想使用编译器自动生成的函数,就该默认拒绝(将其声明在private或protected)

  绝不在构造函数或析构函数中调用virtual函数(当然其他函数调用virtual可以实现template method等有趣的模式)

  不要以某个拷贝函数去实现另外一个拷贝函数(一个是copy函数,一个是copy assignment函数),应该把共同部分放在第三个独立函数

  函数参数的构造顺序不确定,所以不要在函数参数中执行new操作,或将多个函数参数都用函数来表示(否则若一个发生异常,其他有可能不会执行)。

  non-member,none-friend函数有封装性好,跨类型操作等能力,因此在需要的时候没有必要局限于把函数全部放到类里的传统规则。

  若所有参数都需要类型转换,请为此采用non-memeber函数(典型的是双目操作符重载)

  发布版程序维持程序的勉强工作比crash更好;debug版让程序尽量crash。

本文链接:http://renfriends.com/fanghanshu/271.html