首页 > 编程语言 > 详细

C++实现不可被继承的类

时间:2021-04-29 09:51:08      阅读:18      评论:0      收藏:0      [点我收藏+]

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

#include <iostream>

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 <iostream> using namespace std; class A final { public: A() {} }; class B : public A { }; int main() { B a; return 0; }

编译直接报错:

技术分享图片

 

 

// final修饰的函数不可被重写
#include <iostream> 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; }

编译直接报错:

技术分享图片

 

C++实现不可被继承的类

原文:https://www.cnblogs.com/418ks/p/14716286.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!