码迷,mamicode.com
首页 >  
搜索关键字:effective c++    ( 1955个结果
Effective C++:条款40:明智而审慎地使用多重继承
(一)  慎用多重继承,因为那样的话可能会造成歧义。。 class BorrowableItem { public: void checkOut(); }; class ElectronicGadet { private: bool checkOut() const; }; class MP3Player : public BorrowableItem ...
分类:编程语言   时间:2014-07-08 20:52:31    阅读次数:134
Effective C++:条款39:明智而审慎地使用private继承
(一) (1)private继承意味着“根据某物实现出”,只有实现部分被继承,接口部分应略去; (2)它只在软件“实现”层面上有意义,在软件“设计”层面上没有意义。 (3)private继承而来的基类成员都会在派生类中成为private属性,纵使它们在base class中原本是protected或public属性; (4)如果类之间是private继承关系,编译器不会自动将一个派生类对象...
分类:编程语言   时间:2014-07-08 16:56:58    阅读次数:275
effective c++ 条款10 handle assignment to self operator =
非强制性,但是个好习惯当使用连锁赋值时很有用x=y=z=10;class Window{ public: Window& operator=(int size) { ... return *this; }}这个规则适用于 -,+, +=,-= etc
分类:编程语言   时间:2014-07-06 16:14:49    阅读次数:264
Effective C++:条款38:通过复合塑模出has-a或“根据某物实现出”
(一) public继承是“is-a“的关系,而复合有”has-a“或”根据某物实现出(is-implemented-in-terms-of)“的意思——当复合发生在应用域内的对象之间,表现出has-a关系;当它发生于实现域内则是表示“根据某物实现出”的关系。 应用域部分,相当于你塑造的世界中的某些事物,例如人,汽车等。 后者的对象则是实现细节人工产品(这产品现实世界中是没有的),像什么...
分类:编程语言   时间:2014-07-06 11:47:13    阅读次数:215
Effective c++关键点(一)
条款1:视C++为一个语言联邦 1.1 将C++视为一个由相关语言组成的联邦而非单一语言. 1.2 视C++由四块次语言组成: C:区块,语句,预处理器,内置数据类型,数组,指针 等等来自于C语言的特性. Object-Oriented C++:封装,继承,多态,virtual函数 等等面向对象特性. Template C++:泛型编程. STL:标准库. 条款2: ...
分类:编程语言   时间:2014-07-06 09:20:51    阅读次数:213
effective c++ 条款9 do not call virtual function in constructor or deconstructor
在构造函数中不要调用virtual函数,调用了也不会有预期的效果。举个例子class Transaction{ public: Transaction() { log(); } virtual void log() =0;}class BusinessTran...
分类:编程语言   时间:2014-07-05 20:43:00    阅读次数:209
Effective C++:条款36:绝不重新定义继承而来的non-virtual函数
(一)首先有下面的继承体系: class B { public: void mf(); ... }; class D : public B {...}; D x; 以下行为: B* pB = &x; pB->mf(); 异于以下行为: D* pD = &x; pD->mf(); 上面两种行为产生的结果不一定相同。看下面这种...
分类:编程语言   时间:2014-07-04 09:04:30    阅读次数:253
Effective C++:条款37:绝不重新定义继承而来的缺省参数值
由于重新定义继承而来的non-virtual函数是不正确的(见上一个条款),所以这个条款就将问题局限于:绝不重新定义继承一个带有缺省参数值的virtual函数。 (一) virtual函数是动态绑定的,而缺省参数却是静态绑定。  对象的所谓静态类型,是它在程序中被声明时所采用的类型。 你可能会在“调用一个定义于derived class 内的virtual函数”的同时,却使用了ba...
分类:编程语言   时间:2014-07-04 08:23:12    阅读次数:412
Effective Item 3 - 避免不必要的对象
通常,我们更喜欢重用一个对象而不是重新创建一个。如果对象是不可变的,它就始终可以被重用。下面是一个反面例子,JoshuaBloch明确指出[DON‘TTOTHIS]:Strings=newString("stringette");该语句每次执行时都创建一个新的实例。String构造器中的参数"stringette"本身是一个实例..
分类:其他好文   时间:2014-07-02 15:33:43    阅读次数:231
Effective C++:条款35:考虑virtual函数以外的其他选择
游戏中的人物伤害值计算问题。 (一)方法(1):一般来讲可以使用虚函数的方法: class GameCharacter { public: virtual int healthValue() const; //返回人物的体力值,派生类可以做出修改 ... }; 这确实是一个显而易见的设计选择。但因为这样的设计过于显而易见,可能不会...
分类:编程语言   时间:2014-07-01 15:39:40    阅读次数:172
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!