码迷,mamicode.com
首页 >  
搜索关键字:虚函数    ( 1942个结果
c++中虚函数和多态性
1.直接看下列代码:#include using namespace std;class base{public: void who(){ coutwho(); p=&obj2; p->who(); ((derivel1*)p)->who(); p=&...
分类:编程语言   时间:2015-06-12 19:22:57    阅读次数:126
c++中虚析构函数
当指向基类的指针指向新建立的派生类对象而且基类和派生类都调用new向堆申请空间时,必须将基类的析构函数声明为虚函数,从而派生类的析构函数也为虚函数,这样才能在程序结束时自动调用它,从而将派生类对象申请的空间归还给堆。 附上一段代码诠释上述概念:#include #include using n...
分类:编程语言   时间:2015-06-12 19:14:35    阅读次数:164
多态图形
实验要求:定义平面图形类Shape,至少包含虚函数(或纯虚函数)成员getPerimeter()、getArea()、getClassName()和Draw();类Line, Trapezoid, Triangle, Circle分别表示线段、梯形、三角形和圆形。Rectangle继承自Trapez...
分类:其他好文   时间:2015-06-10 01:03:09    阅读次数:126
C++中的虚析构函数、纯虚析构函数详解
C++中析构函数可以为纯虚函数吗?众所周知,在实现多态的过程中,一般将基类的析构函数设为virtual,以便在delete的时候能够多态的链式调用。那么析构函数是否可以设为纯虚呢?class CBase { public: CBase() { printf("CBase()\n"); } virtual ~CBase...
分类:编程语言   时间:2015-06-08 23:27:17    阅读次数:361
构造函数为什么不能是虚函数
从存储空间角度看虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数。从使用角度虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数本身就是要初始化实例,那使用...
分类:其他好文   时间:2015-06-08 23:21:23    阅读次数:151
sdut 6-2 多态性与虚函数
6-2 多态性与虚函数nid=24#time" title="C、C++、go、haskell、lua、pascal Time Limit1000ms Memory Limit 65536K java、python2、python3、ruby、perl Time Limit2000ms M...
分类:其他好文   时间:2015-06-08 13:07:57    阅读次数:201
C++对象模型之详述C++对象的内存布局
本文主要讨论继承对于对象的内存分布的影响,包括:继承后类的对象的成员的布局、继承对于虚函数表的影响、virtual函数机制如何实现、运行时类型识别等。由于在C++中继承的关系比较复杂,所以本文会讨论如下的继承情况: 1)单一继承 2)多重继承 3)重复继承 4)单一虚拟继承 5)钻石型虚拟继承...
分类:编程语言   时间:2015-06-08 11:44:14    阅读次数:177
第十三周项目三-立体类族共有的抽象类
【项目3-立体类族共有的抽象类】     设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。 #include "iostream" u...
分类:其他好文   时间:2015-06-08 09:58:02    阅读次数:114
第十三周项目二-形状类族中的纯虚函数
写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、Triangle(三角形)。用如下的main()函数,求出定义的几个几何体的面积和。  int main() { Circle c1(12.6),c2(4.9);//建立Circle类对象c1,c2,参数为圆半径 Rectangle r1(4.5,8.4),r2(5.0,2...
分类:其他好文   时间:2015-06-08 09:57:55    阅读次数:109
项目3-立体类族共有的抽象类
设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。 main()函数使用的贺老上的。 /* * Copyright (c) 2015,烟...
分类:其他好文   时间:2015-06-08 09:52:05    阅读次数:123
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!