摘要: /Files/xkfz/为什么采用虚函数virtual.ppt C++中的继承与虚函数各种概念 虚继承与一般继承 虚继承和一般的继承不同,一般的继承,在目前大多数的C++编译器实现的对象模型中,派生类对象会直接包含基类对象的字段。而虚继承的情况,派生类对象不会直接包含基类对象的字段,而是通过一个间接的指针去存取基类对象中的字段。 继承的特性 继承是面向对象中引入的重要特性之一,它的一个重要的特点就是子类是父类,父类不是子类。也就是说: 1. 如果基类指针指向子类对象(pbase=&pchild),则该指针只能调用基类定义了的函数;(因为这个地方是静态绑定,而静态绑定所依赖的就是指... 阅读全文
posted @ 2012-02-16 16:01 Mr.Rico 阅读(5051) 评论(0) 推荐(1)
摘要: 多态性----vptr----vtable 多态性 (polymorphism) 是面向对象编程的基本特征之一。而在 C++ 中,多态性通过虚函数 (virtual function) 来实现。我们来看一段简单的代码: #include<iostream>usingnamespacestd;classBase{inta;public:virtualvoidfun1(){cout<<"Base::fun1()"<<endl;}virtualvoidfun2(){cout<<"Base::fun2()"< 阅读全文
posted @ 2012-02-16 11:18 Mr.Rico 阅读(419) 评论(0) 推荐(0)
摘要: 在C和C++中是不同的,我们知道C语言比较宽松、灵活,而C++的目标就是改变C语言比较宽松的特点,实行了比较严格的做法,包括严格的类型检查等等。实际上,在C语言中,main函数可被递归调用,而在C++标准中,main函数不可以被递归调用。C中递归调用: (参考:http://blog.csdn.net/songkexin/article/details/1842654#reply)#include<stdio.h>intmain(){intc;if((c=getchar())!=EOF)//EOF用Ctrl+Z(win)//Ctrl+D(linux){main();}printf( 阅读全文
posted @ 2012-02-16 10:55 Mr.Rico 阅读(5601) 评论(1) 推荐(1)