关于抽象类

  • 包含纯虚函数的类为抽象类(接口类)

  • 类和类之间具有共同特征,将这些共同特征抽取出来,形成的就是抽象类。

  • 如果一个类没有足够的信息来描述一个具体的对象,这个类就是抽象类。

  • 因为类本身就是不存在的,所以抽象类无法创建对象,也就是无法实例化。

  • 抽象方法不能是private的,且是纯虚函数

  • 抽象方法不能被final和static修饰,因为抽象方法要被子类重写

  • 抽象类必须被继承,并且子类要重写父类的抽象方法,否则子类也是抽象类,

日志系统中的日志落地抽象类

cpp 复制代码
	class Sink
    {
    public:
        using ptr = std::shared_ptr<Sink>;
        Sink() {}
        virtual ~Sink(){};
        virtual void Log(const char *data, size_t len) = 0;
    };

    class StdoutSink : public Sink
    {
    public:
        void Log(const char *data, size_t len) override
        {
            std::cout.write(data, len);
        }

    };

http://t.csdnimg.cn/oGYbQ
http://t.csdnimg.cn/QGAmC

相关推荐
charlie1145141911 小时前
基于开源项目的现代C++工程实践——OnceCallback 前置知识(下):C++20/23 高级特性
c++·开源·c++20
蜡笔小马2 小时前
04.C++设计模式-桥接模式
c++·设计模式·桥接模式
宏笋2 小时前
C++ using typedef #define 三者的优缺点比较
c++
枕星而眠2 小时前
一篇吃透 C++ 核心基础:初始化、引用、指针、内联、重载、右值引用
开发语言·数据结构·c++·后端·visual studio
小明同学012 小时前
计算机网络编程---系统调用到并发模型
linux·c++·计算机网络
Season4502 小时前
C/C++的类型转换
c语言·开发语言·c++
Titan20242 小时前
C++特殊类设计
c++·学习
明日清晨2 小时前
有符号与无符号数转换
c++
是wzoi的一名用户啊~2 小时前
Floyd 模版 弗洛伊德算法 模版
c++·算法·动态规划·图论·floyd
gqk013 小时前
C++ / MFC / Qt / C# 核心知识点汇总笔记
c++·qt·mfc