zoukankan      html  css  js  c++  java
  • 使用c++编写一个不能被继承的类

    由于c++没有像Java一样有final关键字,在Java中被final关键字修饰的类是不能被继承的,所以使用c++实现不能被继承的类时会比较麻烦。

    在继承机制中,当调用子类的构造函数时会自动调用父类的构造函数,对于析构函数也是一样,当调用子类的析构函数时会自动调用父类的析构函数。那么,我们可以把构造函数和析构函数都定义为私有的,当子类要继承父类时,必然会调用父类的构造函数和析构函数,这样就会导致编译错误了。

    当时怎样才能得到该类的实例呢,我们可以通过定义一个静态的方法来创建和销毁类的实例。

     1 class FinalClass{
     2 public:
     3   static FinalClass* getInstance()
     4 {
     5    return new FinalClass;
     6 }  
     7   static void Delete(FinalClass* f)
     8 {
     9    delete f;
    10    f=0;
    11 }
    12 private:
    13 FinalClass(){}
    14 ~FinalClass(){}
    15 
    16 };
  • 相关阅读:
    uIP的ARP协议分析
    如何使函数不生成执行代码
    计算机网络基础
    [Hive
    [Hive
    [Hive
    [Hive
    [Hive
    [Hive
    [Hive
  • 原文地址:https://www.cnblogs.com/luoweiKnowledge/p/4209112.html
Copyright © 2011-2022 走看看