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++创建调用静态动态库

  • 2016-03-18 17:23
  • 17.40MB
  • 下载

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

只要学了C++的人,肯定知道静态联编和动态联编,如果你不知道,ok那你学习之路还长。简单的静态联编的东西就不说了。先看下面程序。 class AA{  public:      void res...

C++ 空指针调用函数 静态绑定

首先看一段代码是否知道其正确还是错误。 class A{ public: void print() { cout } }; void main() { A *a = NU...

WinCE中C++调用静态库Lib

  • 2011-01-16 09:46
  • 155KB
  • 下载

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

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

将c++静态库实现二次封装供java调用

JNI是Java Native Interface的缩写,中文为JAVA本地调用。使用JNI可以很方便的用我们的Java程序调用C/C++程序

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

首先,定义如下类A: class A { private: static int val_s; public: static int getVal(){cout << "call ge...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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