C++ 面对对象抽象法则2 demo

tech2022-12-03  105

关键词

virtual: 这种函数或方法可以被子类继承和覆盖,通常使用动态调度实现。这一概念是面向对象程序设计中(运行时)多态的重要组成部分。简言之,虚函数可以给出目标函数的定义,但该目标的具体指向在编译期可能无法确定。

#include <iostream> //#include "String.h" using namespace std; class Shape { public: virtual double Area() const { return 0; }; void Display() { cout << Area() << endl; }; }; class Spuare:public Shape { public: Spuare(double len) :_len(len) { } double Area()const { return _len * _len; }; void Display(); private: double _len; }; class Circle :public Shape { public: Circle(double radius) :_radius(radius) { } double Area()const { return 3.1415926 * _radius*_radius; }; private: double _radius; }; int main() { Spuare s1(2.0); Circle c1(2.0); Shape* Shapes[2]; Shapes[0] = &s1; Shapes[1] = &c1; for (unsigned int index = 0; index < 2; index++) { Shapes[index]->Display(); } return 0; }

 

最新回复(0)