gpt4 book ai didi

c++ - 如何在类层次结构上构建包装器?

转载 作者:行者123 更新时间:2023-11-28 03:04:40 25 4
gpt4 key购买 nike

我有一个现有的类层次结构。我想在上面写一个包装器,它重命名旧类和旧类中的方法。有可能实现吗?例如

class OldBase
{
public:
void OldMethod();
};

class OldDerive : public OldBase
{
public:
void OldMethod();
};

将“旧”名称替换为"new"名称,但使用旧的现有实现。

最佳答案

根据您的实际需要,您有很多方法可以做您想做的事。

  1. 第一个(可能也是最糟糕的)一个是使用 #define 重命名您的函数。它有很多缺陷,但如果您的类层次结构不大并且您没有使用包装器进行大型项目,那么它可以很好。

  2. 您还可以将包装器实现为。这可能是最好的方法。

     class wrapper{ private:    OldBase *base;    wrapper(){base=0;}; public:    void newMethod();    wrapper(OldBase* wrappedObject); };

然后您只需通过执行 wrapper myWrapper(&myBaseObj); 来做一个包装器,然后根据需要使用它。当然,您也可以将任何派生类传递到包装器中,或者甚至设计一个采用引用而不是指针的构造函数,并在构造函数中获取地址。

关于c++ - 如何在类层次结构上构建包装器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20026719/

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