关于抽象类

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

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

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

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

  • 抽象方法不能是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

相关推荐
玖笙&11 小时前
✨WPF编程进阶【7.1】动画基础
c++·c#·wpf·visual studio
QT 小鲜肉11 小时前
【C++基础与提高】第一章:走进C++的世界——从零开始的编程之旅
开发语言·c++·笔记·qt
@木辛梓12 小时前
模版 c++
开发语言·c++
oioihoii12 小时前
C++中的线程同步机制浅析
开发语言·c++
枫叶丹412 小时前
【Qt开发】布局管理器(五)-> QSpacerItem 控件
开发语言·数据库·c++·qt
月下倩影时12 小时前
ROS1基础入门:从零搭建机器人通信系统(Python/C++)
c++·python·机器人
_OP_CHEN12 小时前
C++进阶:(八)基于红黑树泛型封装实现 map 与 set 容器
开发语言·c++·stl·set·map·红黑树·泛型编程
无敌最俊朗@12 小时前
C++线程中detach和join的注意点
c++
努力努力再努力wz13 小时前
【Linux进阶系列】:线程(下)
linux·运维·服务器·c语言·数据结构·c++·算法
abcd_zjq13 小时前
VS2026+QT6.9+ONNX+OPENCV+YOLO11(目标检测)(详细注释)(附测试模型和图像)
c++·人工智能·qt·目标检测·计算机视觉·visual studio