博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++语言学习(十五)——C++抽象类与接口
阅读量:5899 次
发布时间:2019-06-19

本文共 1527 字,大约阅读时间需要 5 分钟。

C++语言学习(十五)——C++抽象类与接口

一、抽象类与接口

1、抽象类简介

面向对象的抽象类用于表示现实世界的抽象概念,是一种只能定义类型,不能产生对象的类(不能实例化),只能被继承并被重写相关函数,直接特征是相关函数没有完整实现。

C++语言没有抽象类的概念,通过纯虚函数实现抽象类。纯虚函数是指定义原型的成员函数,C++中类如果存在纯虚函数就成为了抽象类。
抽象类只能用作父类被继承,子类必须实现父类纯虚函数的具体功能,如果子类没实现纯虚函数,子类也为抽象类。
抽象类不可以定义对象,但是可以定义指针,指针指向子类对象,当子类中实现了纯虚函数,可以实现多态。

#include 
using namespace std;class Shape{public: virtual double getArea()const = 0;};class Rectangle : public Shape{public: Rectangle(double a = 0, double b = 0) { m_width = a; m_height = b; } double getArea()const { return m_width * m_height; }private: double m_width; double m_height;};class Circle : public Shape{public: Circle(double radius = 0) { m_radius = radius; } double getArea()const { return 3.1415926*m_radius*m_radius; }private: double m_radius;};int main(int argc, char *argv[]){ Shape* shape; Rectangle rect(3,4); shape = ▭ cout << "Rectangle' area is " << shape->getArea() << endl; Circle circle(4); shape = &circle; cout << "Circle' area is " << shape->getArea() << endl; return 0;}

2、接口简介

C++中满足下列条件的类称为接口:

A、类中没有定义任何的成员变量
B、所有的成员函数都是公有的
C、所有的成员函数都是纯虚函数
从以上条件可以知道,接口是一种特殊的抽象类。

#include 
using namespace std;class Channel{public: virtual bool open() = 0; virtual void close() = 0; virtual bool send(char* buf, int len) = 0; virtual int receive(char* buf, int len) = 0;};int main(int argc, char *argv[]){ Channel* channel; return 0;}

转载于:https://blog.51cto.com/9291927/2148698

你可能感兴趣的文章
TypeScript基础入门之Javascript文件类型检查(一)
查看>>
MongoDB 日期查询与mongodump 按日期范围导出数据
查看>>
oracle的查询结果按照in条件顺序输出
查看>>
ubuntu 12.04 安装和使用aircrack-ng 教程
查看>>
CentOS 6.4下PXE+Kickstart无人值守安装操作系统
查看>>
Spring Boot 教程系列学习
查看>>
PHP 打印函数之 print print_r
查看>>
学生信息管理系统分析和感想
查看>>
如何在ASP.NET中生成HTML5离线Web应用
查看>>
阿里云里Centos 7 PHP7环境配置 LNMP
查看>>
年卡在手,城墙我走: 记葡萄城控件团队建设
查看>>
__set魔术方法可不可以加private属性
查看>>
MySQL 4种事务的隔离级别
查看>>
跟我一起学docker(13)--docker Machine的使用
查看>>
有关Java字符编码的一些问题
查看>>
二:Unit 4
查看>>
影响英语单词拼写的6大因素
查看>>
计算机硬件基础知识
查看>>
SQLServer删除/重建/禁用/启用外键约束
查看>>
Makefile之深入浅出
查看>>