1.任何构造函数之外的非静态函数都可以是虚函数,virtual只能出现在类内部的声明语句之前而不能用于类外部的函数定义,如果基类把一个函数声明成虚函数,则该函数在派生类中隐式地也是虚函数。2.派生类能访问基类的public,protected成员,而不能访问私有成员。3.如果派生类没有覆盖其基类中的...
分类:
编程语言 时间:
2014-07-06 23:54:50
阅读次数:
486
@Column(name = 可选,列名(默认值为属性名)。unique = 可选,是否在该列上设置唯一约束(默认false)。nullable = 可选,是否设置该列的值可以为空(默认true)。insertable = 可选,该列是否作为生成的insert语句中的一列(默认true)。updat...
分类:
其他好文 时间:
2014-07-06 22:52:07
阅读次数:
261
打开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函数,调用了也不会有预期的效果。举个例子class Transaction{ public: Transaction() { log(); } virtual void log() =0;}class BusinessTran...
分类:
编程语言 时间:
2014-07-05 20:43:00
阅读次数:
209
一、动态绑定什么时候发生当且仅当通过指针或引用调用虚函数时,才会在运行时解析该调用二、派生类中的虚函数当我们在派生类中覆盖了某个虚函数时,可以再一次使用virtual指出该函数的性质,但是这么做并非必须,因为一旦某个函数被声明成虚函数,则在所有派生类中它都是虚函数。一个派生类的函数如果覆盖了某个继承...
分类:
编程语言 时间:
2014-07-05 19:59:46
阅读次数:
228
虚构造函数,这似乎是很违反直观 的一件事情,因为当你拥有一个对象的指针或者引用的时候,你可以通过该对象的动态类型来调用虚函数,而在此处,你的对象还没有构造完成。
其实,“虚构造函数”并不是把你的构造函数声明为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