方法一:通过将类的构造函数和析构函数声明成private来防止子类继承。声明静态的方法来构造和析构类的对象。

但是用起来不是很方便。只能得到在堆上的实例,而不能得到在栈上的实例。

方法二:构造辅助类CBase,声明CTest为CBase友元类,并将自己的构造和析构声明为private,然后CTest虚继承CBase。

根据虚继承的特性,虚基类的构造函数由最终的子类负责构造。

但是这种方法的可移植性不好,虽然在VS中能够编译,但是GCC中对friend的要求不同于VS。目前最新的GCC还不支持模板参数类型作为友元类型。

#include <iostream>
using namespace std;class CBase
{
public:friend class CTest;
private:CBase(){cout<<"base::construct"<<endl;}~CBase(){cout<<"base::destruct"<<endl;}
};class CTest:virtual public CBase
{
public:CTest(){cout<<"CTest::construct"<<endl;}~CTest(){cout<<"CTest::destruct"<<endl;}
};void main()
{CTest *t=new CTest();delete t;
}

转载于:https://www.cnblogs.com/dgy5554/p/3973390.html

剑指offer——不能被继承的类相关推荐

  1. 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题

    各位程序猿: <剑指Offer> 一书源自该书作者何海涛坚持更新与编写的博客( http://zhedahht.blog.163.com/ ),该博客收集整理了大量如微软.Google等知 ...

  2. 《剑指offer》面试题的Python实现

    所属网站分类: 面试经典 > python 作者:gg 链接: http://www.pythonheidong.com/blog/article/464/ 来源:python黑洞网 www.p ...

  3. GitHub#algorithm#:《剑指offer》 的50道面试题

    Copyright(C) nonstriater:https://github.com/nonstriater/Learn-Algorithms <剑指offer> 这本书给出了50到面试 ...

  4. 何海涛——《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题

    <剑指Offer> 一书源自该书作者何海涛坚持更新与编写的博客( http://zhedahht.blog.163.com/ ),该博客收集整理了大量如微软.Google等知名IT企业的经 ...

  5. 【读书笔记】剑指offer

    导语 所有的编程练习都在牛客网OJ提交,链接: https://www.nowcoder.com/ta/coding-interviews 九章算法的 lintcode 也有这本书的题目.https: ...

  6. 剑指Offer(第一版)

    除了剑指Offer第一版书中提到的思路,更有剑走偏锋的刁钻解题,欢迎一起变强 热点知识:先中序建立二叉树(6).快速幂(11).回溯&全排列(12).斐波那契数列问题转化为求矩阵的n次方(9) ...

  7. 递增的整数序列链表的插入_每日算法题 | 剑指offer 链表专题 (5)链表中倒数第k个节点...

    点击上方"Jerry的算法和NLP",选择"星标"公众号 重磅干货,第一时间送达 题目 链表中倒数第k个节点 题目要求 输入一个链表的头结点,从尾到头反过来打印 ...

  8. JAVA实现从尾到头打印链表(《剑指offer》)

    最近在刷<剑指offer>里的编程题,但是网上关于<剑指offer>的解答多半是C或者C++的,而且官方(作者)也是在用C++进行讲解,这里自己用java写了一些题目的解答代码 ...

  9. 二叉树代码 java面试题_《剑指offer》面试题39 二叉树的深度(java)

    摘要: 今天翻到了<剑指offer>面试题39,题目二中的解法二是在函数的参数列表中通过指针的方式进行传值,而java是没有指针的,所以函数要进行改造.然而我翻了下别人的java版本(我就 ...

最新文章

  1. 深度剖析不一样的Redis架构设计!
  2. 为何 short s1 = 1; 是对的,而 float f=3.4; 是错的?
  3. 移动端web开发常见问题
  4. springboot 参数校验详解
  5. uva 1611——Crane
  6. java 蓝桥杯算法训练 数字三角形(题解)
  7. leetcode 703. 数据流中的第K大元素(Kth Largest Element in a Stream)
  8. 关于Android发送邮件
  9. Aqua data studio 19 汉化方法
  10. 计算机视觉 | 面试题:26、LBP算法原理
  11. 2016域服务器自助修改密码,自助密码重置工具
  12. 「产品读书」精益创业
  13. WorkflowSim工作流仿真软件介绍 + 类的介绍 + 自创算法实现步骤
  14. 网络流24题 最小路径覆盖(DCOJ8002)
  15. 小米2S进Recovery
  16. 360 ie8兼容模式 网页兼容问题
  17. xilinx--IOB(1)
  18. MicroPython-On-ESP8266——数码管的使用,2片HC595驱动四位数码管
  19. 清华-计算机-考研-精华帖-汇总
  20. 金融危机,教你从网络上找到一份好兼职

热门文章

  1. JavaScript一次性定时器的设置和取消
  2. 为什么下拉框拉不下来_太气人了!《除暴》吴彦祖的浴巾为什么就是掉不下来?...
  3. python装饰器 property_python中property和setter装饰器用法
  4. JVM运行时数据区分析
  5. Qt for ios 在 xcode 中编译(便于调试)
  6. 用u盘做引导,往硬盘中安装ubuntu
  7. 2.2.2 定点数的运算(移位、原码和补码的加减乘除、溢出概念和判别方法)
  8. 幼儿课外活动游戏_幼儿园的户外活动游戏有哪些?
  9. arm汇编:.balignl伪指令理解
  10. Cpp 11 / 线程库 / 可以做为线程的执行对象有哪些?