码迷,mamicode.com
首页 >  
搜索关键字:effective    ( 1955个结果
Effective c++
1、C++由四个次语言组成:c、c++类对象、template C++、STLc++高效编程守则视状况而变化,取决于使用c++的哪一部分。2、尽量以const、enum、inline替换#define a、常量定义式通常被放在头文件中(以便被不同的源码包含进去),如果想将常量指针(即指向常量的指针)...
分类:编程语言   时间:2014-07-17 22:35:59    阅读次数:317
Maven 常用命令及作用
mvn clean、mvn package、mvn clean install -e、mvn dependency:analyze、mvn denpendency:tree -Dincludes=*:junit -Dverbose、mvn help:effective-pom/mvn help:ef...
分类:其他好文   时间:2014-07-16 18:17:22    阅读次数:1393
Effective C++ Item 48 认识 template 元编程
经验:Template metaprogramming (TMP, 模板元编程)可将工作由运行期移往编译期,因而得以实现早期错误侦测和更高的执行效率 示例1: template void advance(IterT &iter, DistT d){ if(typeid(typename std::iterator_traits::iterator_catogory) == typeid(std::random_access_it...
分类:编程语言   时间:2014-07-16 13:20:54    阅读次数:313
Effective C++ Item 39 明智而审慎地使用 private 继承
经验:private 继承意味 is-implemented-in-terms of。它通常比 composition 的级别低。 但是当 derived class 需要访问 protected base class 的成员,或需要重新定义继承而来的 virtual 函数时,这么设计是合理的 经验:和 composition 不同, private 继承可以造成 empty base 最优化。这对致力于“对象尺寸最小化”的程序库开发者而言,可能很重要 示例1:虽是 Empty class,但却不仅要花...
分类:编程语言   时间:2014-07-15 22:41:05    阅读次数:284
Effective C++ Item 47 请使用 traits classes 表现类型信息
经验:Traits classes 使得"类型相关信息"在编译期可用。它们以 templates 和 "templates 特化"完成实现 示例: template class deque{ public: class iterator{ public: typedef random_access_iterator_tag iterator_category; }; }; //template template struct iterator_trai...
分类:编程语言   时间:2014-07-15 22:40:20    阅读次数:372
Effective C++ Item 35 考虑 virtual 函数以外的实现
1.virtual 函数版本 class GameCharacter{ public: virtual int healthValue() const; //返回人物的健康指数, derived classes 可重新定义它 }; 2.使用 non-virtual interface 手法,那是 Template Method 设计模式的一种特殊形式。 让客户通过 public non-virtual 成员函数间接调用 private virtual 函数 class GameCharacter{ pu...
分类:编程语言   时间:2014-07-15 22:36:18    阅读次数:364
Effective C++ Item 45 运用成员函数模板接收所有兼容类型
经验:请使用 member function templates(成员函数模板)生成"可接受所有兼容类型"的函数 示例:泛化 copy 构造函数 temmplate class SmartPtr{ public: template SmartPtr(const SmartPtr &other) //member template, 为了生成 copy 构造函数 : heldPtr(other.get()){...} T *get() const...
分类:编程语言   时间:2014-07-15 13:10:24    阅读次数:319
Effective C++ Item 44 将与参数无关的代码抽离 templates
经验:Templates 生成多个 classes 和多个函数,所以任何 template 代码都不该与某个造成膨胀的 template 参数产生相依关系 因非类型模板参数(non-type template parameters) 而造成的代码膨胀,往往可消除,做法是以函数参数或 class 成员变量替换 template 参数 示例: template //size_t 是非类型模板参数 class SquareMatrix{ public: //...
分类:编程语言   时间:2014-07-15 13:04:39    阅读次数:307
Effective C++ Item 40 明智而审慎地使用多重继承
经验:多重继承比单一继承复杂。它可能导致新的歧义性,以及对 virtual 继承的需要 示例: class BorrowableItem{ public: void checkOut(); }; class ElectronicGadget{ private: bool checkOut() const; }; class MP3Player: public BorrowableItem public ElectronicGadget {...}; MP3Player mp; mp.checkOut...
分类:编程语言   时间:2014-07-14 13:38:11    阅读次数:240
Effective C++ Item 41 了解隐式接口和编译期多态
经验:class 和 templates 都支持接口和多态。 对 classes 而言接口是显式的,以函数签名为中心。多态则是通过 virtual 函数发生于运行期 对 templates 参数而言,接口是隐式的,奠基于有效表达式。多态则是通过 templates 具体化和函数重载解析(function overloading resolution)发生于编译期。 示例1:显式接口和运行期多态 class Widget{ public: Widget(); virtual ~Widget(); vir...
分类:编程语言   时间:2014-07-14 12:54:57    阅读次数:195
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!