dynamic_cast支持运行时识别指针或引用所指向的对象。从基类指针获得派生类行为最好的办法是通过虚函数。但是在某些情况下,无法使用虚函数,就需要手动显示转换。如果转换指针失败,则置0;如果转换引用失败,则抛出bad_cast异常。
1 if(Extend *ptr = dynamic_cast...
分类:
其他好文 时间:
2014-07-22 23:17:36
阅读次数:
383
1:构造函数不能为虚函数
1):虚函数是用父类指针引用子类对象用的,(父类)构造函数在被调用的时候,子类对象还没被创建,不能用虚函数2):虚函数是通过vtable来调用的,vtable存在于对象的存储空间中,构造函数被调用的时候,对象还未生成,空间未分配,
因此构造函数不能为虚函数2:析构函...
分类:
其他好文 时间:
2014-05-10 01:18:38
阅读次数:
294
1 基类指针指向基类对象(正常使用)
2 派生类指针指向派生类对象(函数名相同,不管是不是虚函数,调用的都是派生类的函数)
3 基类指针指向派生类对象(函数名相同,虚函数的话调用的是派生类的,非虚函数的话调用的是基类的)
4 派生类指针指向基类对象(一般不要这么用)
参考资料:
http://blog.csdn.net/monkeyduck/article/details/155...
分类:
其他好文 时间:
2014-05-05 13:15:52
阅读次数:
273
虚函数使用的时机为什么虚函数不总是适用? 1. 虚函数有事会带来很大的消耗; 2.
虚函数不总是提供所需的行为; 3. 当我们不考虑继承当前类时,不必使用虚函数。必须使用虚函数的情况: 1.
当你想删除一个表面上指向基类对象,实际却是指向派生类对象的指针,就需要虚析构函数。
分类:
编程语言 时间:
2014-05-05 09:36:24
阅读次数:
487
在看项目代码时,发现有个调用,明明调用的函数基类的,搞不懂为什么会调用到派生类的,这是个虚函数,我想肯定是指针的问题,我又想到了是绑定时候的问题thrTransData::thrTransData(){
m_spTimerFactory = NEWSP(TimerFactory); ne...
分类:
其他好文 时间:
2014-05-04 10:28:00
阅读次数:
220
问 1 class B 2 { 3 public: 4 virtual void fun()
5 { 6 printf("fun in B\n"); 7 } 8 void b1() 9 {10 printf("b1 in B\n...
分类:
其他好文 时间:
2014-04-29 17:22:46
阅读次数:
424
首先,做一个最简单的实验,在电脑上运行下面的代码,将会产生运行错误,这或许会使你百思不得其解:
#include
using namespace std;
class Base
{
private:
int a;
public:
~Base(){cout << "Base dtor..." << endl;}
};
class Derived : public Base
{...
分类:
其他好文 时间:
2014-04-29 13:48:21
阅读次数:
357
C++ 中构造函数可否是虚函数?
绝不要!!
而且,在构造函数中调用虚函数也是不提倡的行为,因为会引发预想不到的结果。
因为,在 derived class 对象构造的过程中,首先调用的是基类的构造函数,等基类构造结束,才开始构造派生类的部分。
这个过程中,编译器将该对象视为 基类,而非派生类(因为,派生类对象的专属部分还未初始化!!!)
所以,如果在构造函数中调...
分类:
编程语言 时间:
2014-04-29 13:47:22
阅读次数:
258
小米面试
我:
一面:
数据结构+算法:
斐波那契数列:非递归-迭代
1MB内存,外存-100W整数,排序,O(1)-位图法
设计模式:
代理模式:OO
C++:虚函数表
二面:
数据结构+算法:
快排
二叉树遍历
设计模式:
单例模式-多线程:
关系数据库的特性
进程和线程的区别
三面:
数据结构+算法:...
分类:
移动开发 时间:
2014-04-29 13:17:19
阅读次数:
606
1.虚函数在类内部声明,形式为:
virtual (形参列表)
虚函数的声明比普通函数多一个virtual,公有派生类中可以省略virtual关键字,派生类中重写虚函数,必须要求返回值类型形参列表一致,否则会发生同名覆盖。派生类只有在公有继承的方式继承基类时,才会有虚函数的正常使用。使用虚函数的例子:
# include
using namespace std;
# include...
分类:
其他好文 时间:
2014-04-27 22:22:20
阅读次数:
273