gpt4 book ai didi

c++ - 具有私有(private)构造函数的类私有(private)继承的工作机制

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:10 25 4
gpt4 key购买 nike

案例一:

class ObjectCount {
private:
ObjectCount(){}
};

class Employee : private ObjectCount {};

案例二:

class ObjectCount {
public:
ObjectCount(){}
};

class Employee : private ObjectCount {};

案例 1:ObjectCount 构造函数是私有(private)的,继承是私有(private)的。它给出了编译器错误

情况 2:ObjectCount 构造函数是公共(public)的,继承是私有(private)的。这段代码没问题。

谁能解释一下这是怎么回事?

最佳答案

在第一种情况下,Employee C'tor 不能调用其父 (ObjectCount) C'tor,因为它是私有(private)的。

在第二种情况下,Employee C'tor 调用父级的 ctor 没有问题,因为它是公开的。

请注意,这很重要,因为每个类都必须在激活自己的构造函数之前使用其父构造函数。

私有(private)继承意味着其他类不能使用[或看到]Employee作为ObjectCount,它不会改变ObjectCount的可见性> 的 c'tor,在任何情况下派生类都必须可以访问它。

关于c++ - 具有私有(private)构造函数的类私有(private)继承的工作机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7202341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com