Effective C++ 条款39

Effective C++ 条款39

大家好,又见面了,我是全栈君。

我从本条款中学到了下面内容:
1.private继承不同于另外两种继承,派生类对象不能隐式转换为基类对象。

例如以下代码:

class Bird//鸟
{

};

class ostrich:private Bird//鸵鸟
{

};

int main()
{
Bird *b =  new ostrich();//编译不通过,基类不能转换为派生类

}

编译器明白指出基类是不可訪问的。所以转换失败。

private继承在基类和派生类之间已经没有所谓的继承关系,之所以有它的存在纯粹是为应用层面服务,即为了编程的灵活性而存在的继承关系。

2.例如以下代码。告诉我们private调用的优点,当存在一种特殊情况时。即base class 大小为空时,调用private继承能够使派生类占领的空间大小最小化。这时有人会说我定义的类不是空,为什么大小为1个字节。这里简单解释下。不论什么一个类的大小都不为空,即使你这样定义
class m{};这个类的大小依旧为1,类的大小仅仅和变量有关。而且变量是非静态变量。静态变量不影响类的大小。

#include<string>
#include<iostream>
using namespace std;
class Bird//鸟
{
public:
    static string name;
    static string getName(){ return name; }
};

class ostrich:private Bird//鸵鸟
{

};

int main()
{
    int m1 = sizeof(Bird);//m1大小为1个字节
    int m2 = sizeof(ostrich);//m2大小也为1个字节

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116022.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • leetcode-11盛最多水的容器「建议收藏」

    leetcode-11盛最多水的容器「建议收藏」原题链接给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例 2:输入:he

    2022年8月8日
    1
  • html设置背景图片自适应

    html设置背景图片自适应在网上找了很久,终于在一个百度问答里找到正确答案,记录下来,方便以后使用。在<body>中设置:<bodybackground=”images\bg.jpg”style=”background-repeat:no-repeat;background-size:100%100%;background-attachment:fixed;”>第一行是图片…

    2022年4月27日
    76
  • 【图像处理算法】直方图均衡化「建议收藏」

    【图像处理算法】直方图均衡化「建议收藏」参考文献:RafaelC.Gonzalez,RichardE.Woods,DigitalImageProcessing(ThirdEdition) 胡学龙.数字图像处理(第三版) 左飞.图像处理中的数学修炼目录直方图均衡化的介绍直方图的概念直方图均衡化的理论基础手工实现直方图均衡化MATLAB上实现直方图均衡化直方图均衡化的缺点直方图均衡…

    2022年5月17日
    85
  • GB2312汉字拼音对照表[通俗易懂]

    GB2312汉字拼音对照表[通俗易懂]  GB2312汉字拼音对照表(6727字)来源:http://zh.transwiki.org/wiki/index.php/GB2312%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%AF%B9%E7%85%A7%E8%A1%A8啊 a阿 a e埃 ai挨 ai哎 ai唉 ai哀 ai皑 ai癌 ai蔼 ai矮 ai艾 ai yi碍 ai爱

    2022年6月21日
    20
  • Node.js最新最详细安装教程(2020)

    Node.js最新最详细安装教程(2020)2020最新-Node.js详细安装教程(2020)

    2022年7月16日
    13
  • hadoop集群启动步骤

    hadoop集群启动步骤hadoop集群启动步骤

    2022年4月23日
    57

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号