C++实现不可被继承的类
发布日期:2021-05-08 23:10:39 浏览次数:18 分类:技术文章

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

  方法1:将构造函数修饰成私有时,该类不能被继承。你也许可能会问,构造函数声明成私有,在外面使用时就不能创建对象了,不能创建对象的类还有意义吗?答案是有意义,单例模式就是将类的构造函数声明成私有的。

#include 
using namespace std;class A {private: A() {}};class B : public A {};int main(){ B a; return 0;}

编译直接报错:说明构造函数私有,就不能被继承了。

 

 

  方法2:C++11引入了final关键字,被final修饰的类不能被继承,被final修饰的的方法不可被重写。

// final修饰的类不能被继承 #include 
using namespace std;class A final {public: A() {}};class B : public A {};int main(){ B a; return 0;}

编译直接报错:

 

 

// final修饰的函数不可被重写 #include 
using namespace std;class A {public: A() {} virtual void func() final {}};class B : public A {public: virtual void func() override {}};int main(){ B a; return 0;}

编译直接报错:

 

上一篇:linux下进程创建/僵尸进程/孤儿进程
下一篇:程序并发概述

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月24日 15时36分24秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章