gpt4 book ai didi

c++ - 如何创建基类的单个实例

转载 作者:搜寻专家 更新时间:2023-10-31 01:27:21 24 4
gpt4 key购买 nike

我有一个 GenericRoot 类,它有许多派生自它的类。我只想创建此类的一个实例。我熟悉我看到的这种方法 here :

    class genericRoot {
private:
genericRoot() {}

public:
static genericRoot &getInstance ();
};

class Handler : public genericRoot {
}

但是,这会导致每个 Handler(以及从 Generic Root 派生的每个其他类)出现两个错误:

"error: within this context"

"error: genericRoot::genericRoot is private"

有没有一种干净的方法来完成这个?

最佳答案

Is there a clean way to accomplish this?

当然。使 genericRoot 的默认构造函数成为 protected 成员函数。

class genericRoot {
protected:
genericRoot() {}

public:
static genericRoot &getInstance ();
};

话虽如此,我想警告您,需要基类的对象听起来不对。这是某处设计缺陷的征兆。仔细考虑一下您的需求,并找出是否有任何方法可以在不创建基类实例的情况下满足需求。

关于c++ - 如何创建基类的单个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53510104/

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