gpt4 book ai didi

C++替换派生类中的基类

转载 作者:太空狗 更新时间:2023-10-29 20:51:06 25 4
gpt4 key购买 nike

我相信我正在“糟糕地”考虑这个问题(非 C++'y)。这是我正在尝试做的事情

class AA {
public:
AA(const char* name, unsigned short number);

int Write(int x);
...
}

class BB: public AA {
public:
BB(const char* name, unsigned short number, const char* other);
BB(AA aaObj, const char* other);

int Write(double y, int x) {
/* do something */
AA::Write(x)
}
...
}

在第二个 BB 构造函数上,我想用 aaObj 替换 BB 的基础对象。我不想要拷贝,我希望实际的基础对象相同(相同的引用)。

问题:

  1. 这可能吗?
  2. 这是个坏主意吗?
  3. 是否有更好的模式(工厂生产具有共享成员的对象?

最佳答案

这是不可能的。想想像 nesting dolls 这样的类层次结构.派生类是在外面的,每个连续的基类都是一个嵌套的娃娃。由于基类包含在派生类中,因此您不能将另一个基类用作派生对象的基类。

如果您希望多个对象共享同一个对象,您可以做的一件事是使用 std::shared_ptr成员。每个对象都可以有一个指向同一个对象的指针。

关于C++替换派生类中的基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51770007/

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