剑指offer——不能被继承的类
方法一:通过将类的构造函数和析构函数声明成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——不能被继承的类相关推荐
- 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题
各位程序猿: <剑指Offer> 一书源自该书作者何海涛坚持更新与编写的博客( http://zhedahht.blog.163.com/ ),该博客收集整理了大量如微软.Google等知 ...
- 《剑指offer》面试题的Python实现
所属网站分类: 面试经典 > python 作者:gg 链接: http://www.pythonheidong.com/blog/article/464/ 来源:python黑洞网 www.p ...
- GitHub#algorithm#:《剑指offer》 的50道面试题
Copyright(C) nonstriater:https://github.com/nonstriater/Learn-Algorithms <剑指offer> 这本书给出了50到面试 ...
- 何海涛——《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题
<剑指Offer> 一书源自该书作者何海涛坚持更新与编写的博客( http://zhedahht.blog.163.com/ ),该博客收集整理了大量如微软.Google等知名IT企业的经 ...
- 【读书笔记】剑指offer
导语 所有的编程练习都在牛客网OJ提交,链接: https://www.nowcoder.com/ta/coding-interviews 九章算法的 lintcode 也有这本书的题目.https: ...
- 剑指Offer(第一版)
除了剑指Offer第一版书中提到的思路,更有剑走偏锋的刁钻解题,欢迎一起变强 热点知识:先中序建立二叉树(6).快速幂(11).回溯&全排列(12).斐波那契数列问题转化为求矩阵的n次方(9) ...
- 递增的整数序列链表的插入_每日算法题 | 剑指offer 链表专题 (5)链表中倒数第k个节点...
点击上方"Jerry的算法和NLP",选择"星标"公众号 重磅干货,第一时间送达 题目 链表中倒数第k个节点 题目要求 输入一个链表的头结点,从尾到头反过来打印 ...
- JAVA实现从尾到头打印链表(《剑指offer》)
最近在刷<剑指offer>里的编程题,但是网上关于<剑指offer>的解答多半是C或者C++的,而且官方(作者)也是在用C++进行讲解,这里自己用java写了一些题目的解答代码 ...
- 二叉树代码 java面试题_《剑指offer》面试题39 二叉树的深度(java)
摘要: 今天翻到了<剑指offer>面试题39,题目二中的解法二是在函数的参数列表中通过指针的方式进行传值,而java是没有指针的,所以函数要进行改造.然而我翻了下别人的java版本(我就 ...
最新文章
- 深度剖析不一样的Redis架构设计!
- 为何 short s1 = 1; 是对的,而 float f=3.4; 是错的?
- 移动端web开发常见问题
- springboot 参数校验详解
- uva 1611——Crane
- java 蓝桥杯算法训练 数字三角形(题解)
- leetcode 703. 数据流中的第K大元素(Kth Largest Element in a Stream)
- 关于Android发送邮件
- Aqua data studio 19 汉化方法
- 计算机视觉 | 面试题:26、LBP算法原理
- 2016域服务器自助修改密码,自助密码重置工具
- 「产品读书」精益创业
- WorkflowSim工作流仿真软件介绍 + 类的介绍 + 自创算法实现步骤
- 网络流24题 最小路径覆盖(DCOJ8002)
- 小米2S进Recovery
- 360 ie8兼容模式 网页兼容问题
- xilinx--IOB(1)
- MicroPython-On-ESP8266——数码管的使用,2片HC595驱动四位数码管
- 清华-计算机-考研-精华帖-汇总
- 金融危机,教你从网络上找到一份好兼职
热门文章
- JavaScript一次性定时器的设置和取消
- 为什么下拉框拉不下来_太气人了!《除暴》吴彦祖的浴巾为什么就是掉不下来?...
- python装饰器 property_python中property和setter装饰器用法
- JVM运行时数据区分析
- Qt for ios 在 xcode 中编译(便于调试)
- 用u盘做引导,往硬盘中安装ubuntu
- 2.2.2 定点数的运算(移位、原码和补码的加减乘除、溢出概念和判别方法)
- 幼儿课外活动游戏_幼儿园的户外活动游戏有哪些?
- arm汇编:.balignl伪指令理解
- Cpp 11 / 线程库 / 可以做为线程的执行对象有哪些?