gpt4 book ai didi

c++ - C++ 中的公有和私有(private)继承

转载 作者:IT老高 更新时间:2023-10-28 23:03:25 25 4
gpt4 key购买 nike

从公共(public)继承的文献中我们知道,子类(子类)的对象也可以被认为是基类(父类(super class))的对象。为什么子类的对象不能被认为是父类(super class)的对象,当继承是 protected 或私有(private)的?

最佳答案

因为你看不到它:

class Base
{
public: virtual ~Base() {}
};

class PublicDerived: public Base
{ };

class PrivateDerived: private Base
{ };

int main()
{
PublicDerived publicD;
PrivateDerived privateD;

Base& base1 = publicD;
Base& base2 = privateD; // ERROR
}

所以你不能在可以使用 Base 对象的地方使用 PrivateDerived 对象。
所以它永远不会像 Base 类对象一样。

关于c++ - C++ 中的公有和私有(private)继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4619791/

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