C++: 静态调用

原创 2006年05月22日 09:57:00

#include <iostream>
#include <string>
using namespace std;

class Shape
{
public:
 Shape(void) {}
 ~Shape(void) {}
 virtual void draw(void) const { cout<<"Shape draw"<<endl; }
};

class Rectangle : public Shape
{
public:
 Rectangle(void) {}
 ~Rectangle(void) {}
 void draw(void) const { cout<<"Rectangle draw"<<endl; }
};

class Ellipse : public Shape
{
public:
 Ellipse(void) {}
 ~Ellipse(void) {}
};

int _tmain(int argc, _TCHAR* argv[])
{
 Shape *pr = new Rectangle;
 pr->draw();
 pr->Shape::draw();
 delete pr;
 pr = NULL;

 Shape *pe = new Ellipse;
 pe->draw();
 delete pe;
 pe = NULL;
}

OUT:

Rectangle draw
Shape draw
Shape draw

在上面的例子中,通过指定一个完整的class名称来调用基类的虚方法(pr->Shape::draw();),
这里就是静态调用。通过该方法我们可以通过一个指向子类的指针调用基类的方法。我们也可以
不用改写(override)该虚方法(draw),在子类(Ellipse)中没有对虚方法(draw)进行重写,
它可以调用基类的默认方法,这是虚函数的默认行为。

C++函数调用之静态成员函数

首先,定义如下类A: class A { private: static int val_s; public: static int getVal(){cout ...
  • C12345SDN
  • C12345SDN
  • 2014年09月06日 11:27
  • 2671

Linux下C调用静态库和动态库

Linux下C调用静态库和动态库本文主要介绍Linux下C调用静态库和动态库,使用的样例文件请点击这里. 样例文件welcome.c:#include #include"welcome.h"void...
  • u011192270
  • u011192270
  • 2016年11月23日 16:29
  • 1453

C++静态库与动态库、创建及调用方法

1 什么是库 库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以...
  • fabulousli
  • fabulousli
  • 2016年08月16日 19:59
  • 4044

通过函数指针调用C++非静态成员函数

  • 2008年04月24日 11:26
  • 1KB
  • 下载

c++调用webservice(包括静态和动态以及webservice源码)

  • 2012年08月25日 18:35
  • 34.45MB
  • 下载

最简单的C++静态调用DLL

  • 2017年12月12日 18:18
  • 11KB
  • 下载

C++创建调用静态动态库

  • 2016年03月18日 17:23
  • 17.4MB
  • 下载

WinCE中C++调用静态库Lib

  • 2011年01月16日 09:46
  • 155KB
  • 下载

WP8应用调用C++静态库示例代码

  • 2013年02月01日 13:35
  • 6.33MB
  • 下载

解析c++静态联编和类的成员函数调用

只要学了C++的人,肯定知道静态联编和动态联编,如果你不知道,ok那你学习之路还长。简单的静态联编的东西就不说了。先看下面程序。 class AA{  public:      void res...
  • neiloid
  • neiloid
  • 2011年11月04日 00:01
  • 774
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++: 静态调用
举报原因:
原因补充:

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