gpt4 book ai didi

c++ - 为什么要检查 Base 是 Derived 的私有(private)基还是 protected 基?

转载 作者:行者123 更新时间:2023-12-02 10:15:39 26 4
gpt4 key购买 nike

std::is_base_of<Base, Derived> 之间的唯一区别和 std::is_convertible<Derived*, const volatile Base*>是前者在 Base 时也成立是 私有(private)或 protected Derived 的基类.但是,您何时真正需要知道 Base是私有(private)基地还是 protected 基地?为什么用户应该关心类的内部实现?

最佳答案

作为一个例子,考虑

template <typename T>
struct Foo : T, Bar {};

在这种情况下, T 是否不再是实现细节。确实继承自 Bar (或任何其他类)即使继承受到保护。

对于私有(private)继承,考虑一个做一些簿记的基类。例如,每次创建实例时创建日志条目。现在,当我从第二个类型继承时,如 template <typename T> struct Foo : T {};我想知道 T已经从簿记类继承,或者我必须自己添加。

关于c++ - 为什么要检查 Base 是 Derived 的私有(private)基还是 protected 基?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62018483/

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