dynamic_cast支持运行时识别指针或引用所指向的对象。从基类指针获得派生类行为最好的办法是通过虚函数。但是在某些情况下,无法使用虚函数,就需要手动显示转换。如果转换指针失败,则置0;如果转换引用失败,则抛出bad_cast异常。
1 if(Extend *ptr = dynamic_cast...
分类:
其他好文 时间:
2014-07-22 23:17:36
阅读次数:
383
Java中,经常可以遇到类型转换的场景,从变量的定义到复制、数值变量的计算到方法的参数传递、基类与派生类间的造型等,随处可见类型转换的身影。Java中的类型转换在Java编码中具有重要的作用。首先,来了解下数据类型的基本理解:数据是用来描述数据的种类,包括其值和基于其值基础上的可进行的操作集合。Ja...
分类:
编程语言 时间:
2014-07-22 23:11:13
阅读次数:
492
*概念
类中定义一些不含方法体的方法,它的方法体实现交给该类的子类根据自己的情况去实现,这样的方法就是抽象方法,包含抽象方法的类就是抽象类。抽象类能够被用于类,方法,属性,索引器和事件,使用abstract 在一个类声明中表示该类倾向要作为其它类的基类成员被标示成abstract,或被包含进一个抽象类,必须被其派生类实现。
抽象类通常代表一个抽象概念,它提供...
分类:
其他好文 时间:
2014-07-22 23:04:55
阅读次数:
306
在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。
分类:
其他好文 时间:
2014-04-29 20:30:37
阅读次数:
441
构造函数不能是虚函数。但有时候确实需要能传递一个指向基类对象的指针,并且有已创建的派生类对象的拷贝。通常在类内部创建一个Clone()方法,并设置为虚函数。//Listing
12.11 Virtual copy constructor#include using namespace std;cla...
分类:
编程语言 时间:
2014-04-29 17:26:52
阅读次数:
522
C++ 中构造函数可否是虚函数?
绝不要!!
而且,在构造函数中调用虚函数也是不提倡的行为,因为会引发预想不到的结果。
因为,在 derived class 对象构造的过程中,首先调用的是基类的构造函数,等基类构造结束,才开始构造派生类的部分。
这个过程中,编译器将该对象视为 基类,而非派生类(因为,派生类对象的专属部分还未初始化!!!)
所以,如果在构造函数中调...
分类:
编程语言 时间:
2014-04-29 13:47:22
阅读次数:
258
不是所有的函数都能自动地从基类继承到派生类中的。构造函数和析构函数是用来处理对象的创建和析构的,它们只知道对在它们的特殊层次的对象做什么。所以,在整个层次中的所有的构造函数和析构函数都必须被调用,也就是说,构造函数和析构函数不能被继承。另外,operator=
也不能被继承,因为它完成类似于构造函....
分类:
其他好文 时间:
2014-04-28 17:31:28
阅读次数:
621
1.虚函数在类内部声明,形式为:
virtual (形参列表)
虚函数的声明比普通函数多一个virtual,公有派生类中可以省略virtual关键字,派生类中重写虚函数,必须要求返回值类型形参列表一致,否则会发生同名覆盖。派生类只有在公有继承的方式继承基类时,才会有虚函数的正常使用。使用虚函数的例子:
# include
using namespace std;
# include...
分类:
其他好文 时间:
2014-04-27 22:22:20
阅读次数:
273
涉及到滑动,就涉及到VIEW,大家都知道,android的UI界面都是由一个一个的View以及View的派生类组成,View作为基类,而常用的布局里面的各种布局就是它派生出来的ViewGroup的子类,ViewGroup作为各个组件的容器搭建了整体的UI。以下是android
UI的结构示示意图:
查看源码
/**
* Implement this to do y...
分类:
移动开发 时间:
2014-04-27 20:41:28
阅读次数:
883
多态的实现机制有两种,一是通过查找绝对位置表,二是查找名称表;两者各有优缺点,那么为什么mfc的消息映射采用了第二种方法,而不是c++使用的第一种呢?因为在mfc的gui类库是一个庞大的继承体系,而里面的每个类有很多成员函数(只说消息反映相关的成员函数啊),而且在派生类中,需要改写的也比较少(我用来...
分类:
其他好文 时间:
2014-04-27 17:12:57
阅读次数:
755