我的理解是:通过继承实现的不同对象调用相同的方法,表现出不同的行为,称之为多态. 1: OverRide 实现多态 1 public class Animal 2 { 3 public virtual void Eat() 4 { 5 ...
分类:
其他好文 时间:
2014-07-07 00:44:06
阅读次数:
283
1.任何构造函数之外的非静态函数都可以是虚函数,virtual只能出现在类内部的声明语句之前而不能用于类外部的函数定义,如果基类把一个函数声明成虚函数,则该函数在派生类中隐式地也是虚函数。2.派生类能访问基类的public,protected成员,而不能访问私有成员。3.如果派生类没有覆盖其基类中的...
分类:
编程语言 时间:
2014-07-06 23:54:50
阅读次数:
486
打开VMware系统时,出现错误“Invalid configuration file. File "I:/My Virtual Machines/Windows XP english Professional/Windows XP Professional.vmx" was created by ...
分类:
其他好文 时间:
2014-07-06 19:06:08
阅读次数:
175
Java体系结构包含四个独立却又彼此相关的技术: Java程序设计语言 Java API Java Class文件格式 JVM: Java Virtual MachineJVM的实现方式: 1、一次性解释器,解释字节码并执行; 2、即时编译器(just-in-time complier)...
分类:
其他好文 时间:
2014-07-06 18:57:10
阅读次数:
221
一、动态绑定什么时候发生当且仅当通过指针或引用调用虚函数时,才会在运行时解析该调用二、派生类中的虚函数当我们在派生类中覆盖了某个虚函数时,可以再一次使用virtual指出该函数的性质,但是这么做并非必须,因为一旦某个函数被声明成虚函数,则在所有派生类中它都是虚函数。一个派生类的函数如果覆盖了某个继承...
分类:
编程语言 时间:
2014-07-05 19:59:46
阅读次数:
228
Linux的命令后面会有命令选项,有的选项还有选项值。选项的前面有短横线“-”,命令、选项、选项值之间使用空格隔开。有的命令没有选项,会有参数。选项是命令内置的功能,参数是用户提供的符合命令格式的内容。1.1.1. 命令提示符在桌面上点击鼠标右键,在弹出菜单中选择“Open in Terminal”...
分类:
系统相关 时间:
2014-07-05 11:18:23
阅读次数:
293
虚构造函数,这似乎是很违反直观 的一件事情,因为当你拥有一个对象的指针或者引用的时候,你可以通过该对象的动态类型来调用虚函数,而在此处,你的对象还没有构造完成。
其实,“虚构造函数”并不是把你的构造函数声明为virtual,而是某一种函数,根据其输入数据,来决定此时构造什么类型的对象。比如你要从文件或者网络上读取一些数据,从该数据你来决定你要创建什么类型的对象。
比如:
下述的继承体...
分类:
其他好文 时间:
2014-07-04 09:13:37
阅读次数:
249
(一)首先有下面的继承体系:
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
由于重新定义继承而来的non-virtual函数是不正确的(见上一个条款),所以这个条款就将问题局限于:绝不重新定义继承一个带有缺省参数值的virtual函数。
(一)
virtual函数是动态绑定的,而缺省参数却是静态绑定。
对象的所谓静态类型,是它在程序中被声明时所采用的类型。
你可能会在“调用一个定义于derived
class 内的virtual函数”的同时,却使用了ba...
分类:
编程语言 时间:
2014-07-04 08:23:12
阅读次数:
412