码迷,mamicode.com
首页 >  
搜索关键字:virtual函数    ( 149个结果
c++ 子类切勿重新定义父类 non-virtual函数
子类如果重新定义了父类的non-virtual函数则不会有多态效果。为方便描述,这里的方法和继承方式都用public。至于原因嘛,你懂的!1:子类直接继承父类方法class BaseOption{public: void Function();};void BaseOption::Functi...
分类:编程语言   时间:2014-07-16 22:53:36    阅读次数:235
c++ 切勿重新定义继承来的带缺省参数的函数
切勿重新定义继承来的带缺省参数的函数。我们知道,继承来的函数是virtual 的,至于原因在上一节中已经说明了,即“切勿重新定义父类non-virtual函数”。所以确切的描述应该是“切勿重新定义继承来的带缺省参数的virtual函数”。因为缺省参数是静态绑定,而virtual是动态绑定。typed...
分类:编程语言   时间:2014-07-16 21:36:12    阅读次数:199
Effective C++ Item 30 inline里里外外
1.将大多数 inlining 限制在小型、被频繁调用的函数身上。这可使日后的调试过程和二进制升级更容易, 也可使潜在的代码膨胀问题最小化,使程序的速度提升机会最大化。 2.inline是对编译器的一个申请。 隐喻方式:将函数定义于 class 定义式内, 如成员函数或 friend 函数 明确声明:在定义式前加关键字 inline 编译器会拒绝大过复杂的函数 inlining, 而所有对 virtual 函数的调用也都会使 inlining 落空。 因为 virtual 意味 ”等待,直到运行期才确定...
分类:编程语言   时间:2014-07-10 20:49:39    阅读次数:205
dynamic_cast的用处
主要用来在没有实现文件,只有头文件的情况下,添加派生类的功能,如下例给programmer加奖金。注意:dynamic_cast不能用于没有virtual函数的类/////////////////////////////////////////////////////////////////////...
分类:其他好文   时间:2014-07-07 19:05:40    阅读次数:165
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 C++:条款35:考虑virtual函数以外的其他选择
游戏中的人物伤害值计算问题。 (一)方法(1):一般来讲可以使用虚函数的方法: class GameCharacter { public: virtual int healthValue() const; //返回人物的体力值,派生类可以做出修改 ... }; 这确实是一个显而易见的设计选择。但因为这样的设计过于显而易见,可能不会...
分类:编程语言   时间:2014-07-01 15:39:40    阅读次数:172
绝不在构造和析构函数中调用 virtual 函数
看下面的这段代码,问 print调用的是基类还是派生类的版本? {CSDN:CODE:410156} 答案是 基类。。。 可能大家会很惊讶,print不是virtual function 吗?为什么不是调用派生类的版本呢? 首先,当定义一个派生类的对象的时候,由于 base class 构造函数的执行更早于 derived class 构造函数,所以当 base cl...
分类:其他好文   时间:2014-06-30 00:48:35    阅读次数:267
149条   上一页 1 ... 12 13 14 15 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!