zoukankan      html  css  js  c++  java
  • 不能被继承的类 【微软面试100题 第五十九题】

    题目要求:

      用C++设计一个不能被继承的类。

      参考资料:剑指offer第48题。

    题目分析:

      方法1:把构造函数设为私有函数,定义共有的静态函数来创建和释放类的实例;

      方法2:利用虚拟继承和友元;

    代码实现:

      

    //把构造函数设为私有函数,定义共有的静态函数来创建和释放类的实例
    class Temp
    {
    public:
        static Temp *GetInstance()
        {
            return new Temp();
        }
        static void DeleteInstance(Temp *pInstance)
        {
            delete pInstance;
        }
    private:
        Temp();
        ~Temp();
    };
    //利用虚拟继承和友元,对外使用Temp1
    tempLate <class T>
    class Temp
    {
        friend T;
    private:
        Temp(){}
        ~temp(){}
    };
    class Temp1:virtual public Temp<Temp1>
    {
    public:
        Temp1(){}
        ~Temp1(){}
    };
  • 相关阅读:
    Poj2033
    CodeForces 540
    CodeForces 548
    LeetCode#2 Add Two Numbers
    CodeForces 544A
    POJ 2431Expedition
    HLG1116-选美大赛
    清华学堂 列车调度(Train)
    清华学堂 LightHouse
    清华学堂 Range
  • 原文地址:https://www.cnblogs.com/tractorman/p/4101188.html
Copyright © 2011-2022 走看看