虚函数的使用

原创 2015年07月08日 12:06:24

虚函数的使用和纯虚函数的使用。


虚函数是在基类定义,然后子类重写这个函数后,基类的指针指向子类的对象,可以调用这个函数,这个函数同时保留这子类重写的功能。

纯虚函数是可以不用在基类定义,只需要声明就可以了,然后因为是纯虚函数,是不能产生基类的对象,但是可以产生基类的指针。

纯虚函数和虚函数最主要的区别在于,纯虚函数所在的基类是不能产生对象的,而虚函数的基类是可以产生对象的。

// pointers to base class
#include <iostream>
using namespace std;
class Polygon {
  protected:
    int width, height;
  public:
    void set_values (int a, int b)
      { width=a; height=b; }
    virtual int area(){
        return 0;
    }
};

class Rectangle: public Polygon {
  public:
    int area()
      { return width*height; }
};

class Triangle: public Polygon {
  public:
    int area()
      { return width*height/2; }
};

int main(){
    Polygon *p1,*p2;
    Rectangle rec;
    Triangle tri;
    p1 = &rec;
    p2 = &tri;
    p1->set_values(1,2);
    p2->set_values(2,4);
    cout << rec.area() << endl;
    cout << tri.area() << endl;
    cout << p1->area() << endl;
    cout << p2->area() << endl;
    return 0;
}





相关文章推荐

使用指针和引用处理虚函数实例

  • 2015年04月14日 19:40
  • 1.62MB
  • 下载

对C++虚函数使用的深刻体会,以及覆写,重载的区别?

虚函数就是实现函数的覆写, 它们以下特点: (1)不同的范围(分别位于派生类与基类);  (2)函数名字相同;  (3)参数相同;  (4)基类函数必须有virtual关键字   还有,要注意...

虚函数的使用

  • 2012年12月20日 17:23
  • 648B
  • 下载

也谈“避免使用虚函数作为库的接口”

近日拜读了陈硕大牛的文章C++ 工程实践(5):避免使用虚函数作为库的接口,文章的观点认为应该避免使用C++的class纯虚函数来定义API接口,并以COM作为反向教材进行批判,对此本人有些不同意见,...
  • Analyst
  • Analyst
  • 2011年03月16日 16:53
  • 1335

虚函数的使用

  • 2012年11月09日 12:10
  • 511B
  • 下载

c++虚函数使用

  • 2015年11月20日 10:23
  • 23KB
  • 下载

RTTI、虚函数和虚基类的开销分析及使用指导

转自:http://baiy.cn/ RTTI、虚函数和虚基类的开销分析及使用指导 白杨   “在正确的场合使用恰当的特性” 对称职的C++程序员来说是一个基本标准。想要做到这点,首先要了解语言中...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:虚函数的使用
举报原因:
原因补充:

(最多只允许输入30个字)