C++实现一个不能被继承的类
来源:互联网 发布:mac改铃声 编辑:程序博客网 时间:2024/06/06 02:42
要设计一个不能被继承的类,考虑C++11的新特性的话,有三种方法:
(1)就是将该类的构造函数和析构函数设为private(或者仅仅将析构函数设为private),这样派生类无法调用基类的构造函数和析构函数,从而不能继承。要创建对象,可以在该类中设一个static成员函数,提供返回一个该类对象指针,这种方法比较普遍就不细说。需要注意的是这种方法导致对象只能在heap中产生。那如何能构造一个正常对象的class而又不能被继承呢?
(2)C++11提供final关键字。final关键字的作用:1.用于防止类型被继承;2.用于防止虚函数被重写。
(3)利用虚继承
#include <iostream>using namespace std;template<class T>class A{ friend T;private: A(){cout<<"A()"<<endl;}; ~A(){cout<<"~A()"<<endl;}};class B:virtual public A<B>{public: B(){cout<<"B()"<<endl;} ~B(){cout<<"~B()"<<endl;}};/*class C:public B{public: C(){cout<<"C()"<<endl;} ~C(){cout<<"C()"<<endl;}};*/class D final{public: D(){cout<<"D()"<<endl;} ~D(){cout<<"~D()"<<endl;}};/*class E:public D{public: E(){cout<<"E()"<<endl;} ~E(){cout<<"E()"<<endl;}};*/int main(){ B b; return 0;}这里的virtual是必须的。
0 0
- 【c++】实现一个不能被继承的类
- C++实现一个不能继承的类
- 试题:实现一个不能被继承的类(上)
- 试题:实现一个不能被继承的类(下)
- 试题:实现一个不能被继承的类(续之下)
- 试题:实现一个不能被继承的类(续之上)
- 用C++实现一个不能被继承的类
- 用C++实现一个不能被继承的类
- C++实现一个不能被继承的类
- C++实现一个不能被继承的类
- 用C++实现一个不能被继承的类
- C++实现一个不能被继承的类
- c++中如何实现一个不能被继承的类
- 面试题:C++实现一个不能被继承的类
- 设计一个不能被继承的类
- 设计一个不能被继承的类
- 设计一个不能被继承的类
- 设计一个不能被继承的类
- android线程
- android手势识别
- 1001. A+B Format (20)
- ACM--字母反转--HDOJ 1062--Text Reverse--字符串
- Linux常用指令 2
- C++实现一个不能被继承的类
- sql server 取每一个学生多个科目当中分数最高的记录……
- freemodbus移植讲解
- copy-on-write详解
- JavaScript线程
- 混淆的if()
- 69道Spring面试题和答案
- Hue 介绍 ,安装 与应用
- linux命令2