c++中的虚函数主要是用来实现多态的,虽然都同时指向父类的实例。但调用的确实子类的函数,这个有点像java的接口和实现的关系了。一个接口有多种实现,一个接口对象调用的是哪个实现的方法,这个就是多态了这里我写了两个类,FClass作为父类,CClass作为子类,父类和子类中都有一个fun()函数。先看...
分类:
编程语言 时间:
2014-10-13 14:12:29
阅读次数:
210
1、位域变量符号位也占1bit,所以取1bit时需留意是否是无符号类型 2、位域变量不能取地址 3、初始化时,位域变量按定义顺序初始化,否则会有告警 4、static成员变量不在sizeof计算内 5、空类的sizeof值为1 6、有virtual函数的class,包含指向虚函数表的指...
分类:
其他好文 时间:
2014-10-13 02:27:08
阅读次数:
297
C++面试题1.是不是一个父类写了一个virtual 函数,假设子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,仅仅事派生类没有訪问权限而已virtual可加可不加子类的空间里有父类的全部变量(static除外)同一个函数仅仅存在一个...
分类:
编程语言 时间:
2014-10-10 22:15:24
阅读次数:
246
覆盖与重写可以说是一样的,但与重载不同。override(重写)是指在不同作用域中,多个函数原型完全一样,而实现却不同的函数。在C++中,经常发生在类的继承中。当基类中的某个方法是virtual或pure virtual函数时(当然访问权限必须是public或protected,因为从C++设计思想...
分类:
其他好文 时间:
2014-10-07 02:31:42
阅读次数:
280
C++面试题1.是不是一个父类写了一个virtual 函数,假设子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,仅仅事派生类没有訪问权限而已virtual可加可不加子类的空间里有父类的全部变量(static除外)同一个函数仅仅存在一个...
分类:
编程语言 时间:
2014-10-06 19:55:20
阅读次数:
236
C++面试题1.是不是一个父类写了一个virtual 函数,假设子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,仅仅事派生类没有訪问权限而已virtual可加可不加子类的空间里有父类的全部变量(static除外)同一个函数仅仅存在一个...
分类:
编程语言 时间:
2014-10-04 13:09:06
阅读次数:
235
C 中delete表达式执行的操作是:1,调用析构函数;2,释放对象内存(operator delete(…))。 如果父类的析构函数没有声明为virtual函数,且子类中至少存在一个virtual函数,此时将子类的对象地址赋值给父类指针。当对父类的指针执行delete操作时,会调用父类析构函数,然...
分类:
其他好文 时间:
2014-09-25 18:51:47
阅读次数:
171
为什么内联函数,构造函数,静态成员函数不能为virtual函数?1> 内联函数内联函数是在编译时期展开,而虚函数的特性是运行时才动态联编,所以两者矛盾,不能定义内联函数为虚函数。2> 构造函数构造函数用来创建一个新的对象,而虚函数的运行是建立在对象的基础上,在构造函数执行时,对象尚未形成,所以不能将...
分类:
其他好文 时间:
2014-09-13 15:45:25
阅读次数:
152
条款09:Never call virtual functions during construction or destruction。译:绝不在构造和析构过程调用virtual函数考虑如下代码:class BaseClass { public: BaseClass() { ...
分类:
编程语言 时间:
2014-09-12 20:34:44
阅读次数:
240
主要用于创建对象。新添加类时不会影响以前的系统代码。原理是创建一个工厂类,根据输入条件在其内部产生不同的类,再根据不同类的virtual函数得到不同结果。...
分类:
编程语言 时间:
2014-08-27 18:49:28
阅读次数:
198