IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++的抽象类 -> 正文阅读

[C++知识库]C++的抽象类

抽象类的一般规范

.h文件

#ifndef CLASSNAME_H
#define CLASSNAME_H
class ClassNamw{
//
// 省略其他逻辑代码
//
//
public:
virtual void showInfo()=0;//纯虚函数-----抽象函数
}
#endif //CLASSNAME_H

.cpp文件

class ClassNamw{
//
// 省略其他逻辑代码
//
//
}

带关键字virtual的函数并且函数直接=0且没有函数体的函数称为抽象函数,带抽象函数的类称为抽象类

注意 : 我们在写抽象函数的时候 .h文件一定要加上# ifndef ,#define, # endif // 预处理指令不然编译器会循环引用报错

实战

我们现在有水果抽象类
.h文件


#ifndef FRUITS_H
#define FRUITS_H



#include <iostream>

using namespace std;

//水果  抽象类
class Fruits {

public:
    Fruits(int, string);
public:
    int  size=0;//水果的大小
    string relish;//水果的味道
    virtual void showInfo()=0;//抽象函数
};

#endif //FRUITS_H

.cpp文件

#include "Fruits.h"

Fruits::Fruits(int size, string relish):size(size),relish(relish) {}

苹果类—实现水果类
.h文件

#ifndef APPLE_H
#define APPLE_H


#include "Fruits.h"
#include "iostream"

using namespace std;


class Apple : public Fruits {
public:
    Apple(int, string);

    void showInfo();
};

#endif //FRUITS_H

.cpp文件

#include "Apple.h"

Apple::Apple(int size, string relish) : Fruits(size, relish) {

}

 void Apple::showInfo() {
    cout << "我是苹果,我的信息是 大小: " << size << "我的味道是: " << relish << endl;
}

橘子类–实现水果类
.h文件


#ifndef TANGERINE_H
#define TANGERINE_H

#include "Fruits.h"

class Tangerine : public Fruits {
public:
    Tangerine(int, string);

    void showInfo();
};

#endif //TANGERINE_H

.cpp文件


#include "Tangerine.h"

Tangerine::Tangerine(int size, string relish): Fruits(size,relish) {

}
void Tangerine::showInfo() {
    cout << "我是橘子的信息 大小:" << size << "我是味道: " << relish << endl;
}

还有我们的main函数

#include <iostream>
#include "Apple.h"
#include "Tangerine.h"
int main() {

    Apple apple(14, "酸的");
    Tangerine tangerine(3, "甜的");
    apple.showInfo();
    tangerine.showInfo();
}

结果

我是苹果,我的信息是 大小: 14我的味道是: 酸的
我是橘子的信息 大小:3我是味道: 甜的

注意 如果继承类没有重新纯虚函数,那么这个类本身也是一个抽象函数

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-21 12:00:48  更:2021-10-21 12:02:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:15:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码