gpt4 book ai didi

具有私有(private)访问说明符的 C++ 派生类

转载 作者:太空宇宙 更新时间:2023-11-04 11:47:53 25 4
gpt4 key购买 nike

我有一个来自基类(A 类)的派生类(B 类)。 A 类有一个 protected 虚函数 foo(),我想覆盖它并将其用作派生类中的私有(private)函数。

Class A{
protected:
virtual void foo() = 0;
}

我想知道是否有以下内容

Class B: public Class A
private:
virtual void foo();

Class B: private Class A
private:
virtual void foo();

是一样的。

最佳答案

它们不一样。在第一个示例中,B is-an-A,在第二个示例中则不是。所以在第一种情况下你可以有这样的代码

void foo(const A& a);

它接受 AB 作为参数。使用私有(private)继承,你不能那样做。例如,

A a;
B b;
foo(a); // OK with private and public inheritance
foo(b); // OK only with public inheritance, i.e. B is an A.

关于具有私有(private)访问说明符的 C++ 派生类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19360937/

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