欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

c++如何生成一个不能被继承的类

发布时间:2024/8/1 c/c++ 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 c++如何生成一个不能被继承的类 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

在java 中final  可以定义 一个类不能被继承,c++中没有这个,但是c++可以实现这个类。

大家知道union 是不能被继承的

1.union,匿名类


union  finaClass

{

public:

  class 

{

 .......。。。。。。。

} data


};

finalClass finaData;

这样匿名类只能用,不能被继承。

2.利用虚继承


template<typename T> class Base
{
public :
friend T;
private : 
Base(){ cout<<"base"<<endl;}
~Base(){}


};


class FinalClass :virtual public Base<FinalClass>
{
public :
FinalClass()
{
cout<<"final class"<<endl;
}
};


class CC :public FinalClass  // 错误,CC无法访问 Base构造函数,该构造函数为private ;
{
public :
CC(){cout<<"cc"<<endl;}
};



总结

以上是生活随笔为你收集整理的c++如何生成一个不能被继承的类的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。