抽象类定义:
成员函数至少有一个为纯虚函数(函数声明后面加=0,但是不定义)的类为抽象基类,这个基类不能被显示创建其对象。但是这个基类的其他函数都可以正常定义,一般析构函数为虚函数用来被其他类继承。
例如:
头文件:
#ifndef COMMUNICATER_H
#define COMMUNICATER_H
class Communicater
{
public...
分类:
编程语言 时间:
2014-09-28 02:08:40
阅读次数:
205
http://www.cnblogs.com/fly1988happy/archive/2012/09/25/2701237.html1. 多态在面向对象语言中,接口的多种不同实现方式即为多态。多态是指,用父类的指针指向子类的实例(对象),然后通过父类的指针调用实际子类的成员函数。多态性就是允许将子...
分类:
编程语言 时间:
2014-09-27 07:55:59
阅读次数:
250
C++中的虚函数 先来看一下实际的场景,就很容易明白为什么要引入虚函数的概念。假设我们有一个基类Base,Base中有一个方法eat;有一个派生类Derived从基类继承来,并且覆盖(Override)了基类的eat;继承表明ISA(“是一个”)的关系,现在我们有一个基类的指针(引用)绑定到派生类....
分类:
编程语言 时间:
2014-09-26 21:24:48
阅读次数:
368
定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。在基类中实现纯虚函数的方法是在函数原型后加“=0” virtual void funtion1()=0在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生...
分类:
其他好文 时间:
2014-09-26 11:52:48
阅读次数:
134
??
【项目3】设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。设计个派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义基类的指针p(CSolid *p;),利用p指针,输出正方体、球体及圆柱体对象的表面积及体积
程序代码
#include
using namespace std;
class Shape//...
分类:
其他好文 时间:
2014-09-23 01:20:43
阅读次数:
395
#类中的元素0.成员变量 1.成员函数 2.静态成员变量 3.静态成员函数 4.虚函数 5.纯虚函数#影响对象大小的因素0.成员变量 1.虚函数表指针(_vftptr) 2.虚基类表指针(_vbtptr) 3.内存对齐_vftptr、_vbtptr的初始化由对象的构造函数, 赋值运算符自动完成;对....
分类:
其他好文 时间:
2014-09-21 14:35:00
阅读次数:
360
虚函数virtual表示动态继承,通过vptr指针指向vtable虚表,虚表中保存了每个虚函数的地址。通过父类指针在运行时绑定子类方法。虚继承:有几个父类,就有几个vtab和vptr定义一个函数为纯虚函数,才代表函数没有被实现。定义他是为了实现一个接口,起到一个规范的作用,规范继承这个。类的程序员必...
分类:
编程语言 时间:
2014-09-18 22:10:44
阅读次数:
237
1、纯虚函数class Base{public: Base(){}; virtual ~Base(){};};//类A是一个抽象类class A : public Base{public: A(){} virtual ~A(){} virtual void fun() ...
分类:
其他好文 时间:
2014-09-12 14:46:13
阅读次数:
204
public继承从根本上讲,有两部分:接口继承和实现继承。两者之前的区别很像函数声明与函数定义。具体设计中,会呈现三种形式:derived class只继承成员函数的接口(纯虚函数);derived class同时继承函数的接口和实现,同时能够重写(override);derived class同时...
分类:
编程语言 时间:
2014-09-11 09:33:21
阅读次数:
205
C++面试题1:构造函数和虚构函数中能否调用虚函数?
构造函数跟虚构函数里面都可以调用虚函数,编译器不会报错。C++ primer中说到最好别用由于类的构造次序是由基类到派生类,所以在构造函数中调用虚函数,虚函数是不会呈现出多态的类的析构是从派生类到基类,当调用继承层次中某一层次的类的析构函数时意味着其派生类部分已经析构掉,所以也不会呈现多态因此如果在基类中声明的纯虚函数并且在基类的析构函数...
分类:
编程语言 时间:
2014-09-08 10:55:36
阅读次数:
453