抽象类基本语法

来源:互联网 发布:手机信息源码 编辑:程序博客网 时间:2024/05/21 11:02

传智扫地僧课程学习笔记。


在多态的基础上,

将父类函数,用virtual修饰,并=0,形成纯虚函数,

进而这个类也变为抽象类,

为继承它类,提供统一接口,

继承它的类,需要实现这个类,否则仍是抽象类,

下面是老师课上的代码,

#include <iostream>using namespace std;////面向抽象类编程(面向一套预先定义好的接口编程)//解耦合 ....模块的划分class  Figure //抽象类{public://阅读一个统一的界面(接口),让子类使用,让子类必须去实现virtual void getArea() = 0 ; //纯虚函数protected:private:};class Circle : public Figure{public:Circle(int a, int b){this->a = a;this->b = b;}virtual void getArea(){cout<<"圆形的面积: "<<3.14*a*a<<endl;;}private:int a;int b;};class Tri : public Figure{public:Tri(int a, int b){this->a = a;this->b = b;}virtual void getArea() {cout<<"三角形的面积: "<<a*b/2<<endl;;}private:int a;int b;};class Square : public Figure{public:Square(int a, int b){this->a = a;this->b = b;}virtual void getArea() {cout<<"四边形的面积: "<<a*b<<endl;;}private:int a;int b;};void objplay(Figure *base){base->getArea(); //会发生多态}void main511(){//Figure f; //抽象类不能被实例化Figure *base = NULL; //抽象类不能被实例化Circle c1(10, 20);Tri t1(20, 30);Square s1(50, 60);//面向抽象类编程(面向一套预先定义好的接口编程)objplay(&c1);objplay(&t1);objplay(&s1);//c1.getArea();cout<<"hello..."<<endl;system("pause");return ;}


0 0
原创粉丝点击