gpt4 book ai didi

c++ - 派生类中的私有(private)重写虚函数

转载 作者:行者123 更新时间:2023-12-02 05:02:08 28 4
gpt4 key购买 nike

如果虚拟成员函数在基类中是公共(public)的,那么将基类重写的虚拟成员函数设为私有(private)有什么意义吗?

struct base {
virtual void a();
};

struct derived : base {
// ...
private:
void a() override;
};

最佳答案

如果您被迫对实现类进行两阶段构造(即有一个 init() 方法以及或代替必须调用的构造函数(我知道,但有原因),那么这会阻止您在将实例指针作为接口(interface)指针传回之前直接在实例指针上调用任何/其他/方法。多走一步,将继承设为私有(private),并让您的一个公共(public) init 函数返回接口(interface)指针!

另一个原因是您不需要/在最终实现类声明中编写 public: ,因此默认情况下所有内容都是私有(private)的。但我不知道为什么要这样做并使用结构而不是类。也许这是由于风格之战而在某个时候从类(Class)转变而来的?

关于c++ - 派生类中的私有(private)重写虚函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58451859/

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