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我是味道: 甜的

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~搬~运~工~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值