dynamic_cast支持运行时识别指针或引用所指向的对象。从基类指针获得派生类行为最好的办法是通过虚函数。但是在某些情况下,无法使用虚函数,就需要手动显示转换。如果转换指针失败,则置0;如果转换引用失败,则抛出bad_cast异常。
1 if(Extend *ptr = dynamic_cast...
分类:
其他好文 时间:
2014-07-22 23:17:36
阅读次数:
383
1 基类指针指向基类对象(正常使用)
2 派生类指针指向派生类对象(函数名相同,不管是不是虚函数,调用的都是派生类的函数)
3 基类指针指向派生类对象(函数名相同,虚函数的话调用的是派生类的,非虚函数的话调用的是基类的)
4 派生类指针指向基类对象(一般不要这么用)
参考资料:
http://blog.csdn.net/monkeyduck/article/details/155...
分类:
其他好文 时间:
2014-05-05 13:15:52
阅读次数:
273
本篇是boost::serialization 用基类指针转存派生类(错误多多,一波三折)的姊妹篇,这里只不过做一个总结。
先来看一个基类
class base_class
{
public:
base_class(int m=0) : base_member_(0) {}
virtual ~base_class() {}
virtual void print_data() = 0;
...
分类:
其他好文 时间:
2014-05-03 21:24:33
阅读次数:
247