gpt4 book ai didi

c++ - 当我需要多态性时,如何避免动态分配?

转载 作者:行者123 更新时间:2023-11-30 02:27:23 24 4
gpt4 key购买 nike

在 Ubuntu 14.04 和以下 MCVE 上使用 GCC:

class TargetInterface
{
public:
~TargetInterface();
//
DataBuffer retDataBuffer();
// following methods are all pure virtual
virtual void delay() = 0;
// ...
protected:
DataBuffer dataBuffer;
}

class FlashTarget : public TargetInterface
{
public:
void delay() override;
// ...
}

// globals
TargetInterface * targetInterface;

void main()
{
targetInterface = new FlashTarget; // <--
// ...
// etc.
}

FlashTarget 派生自 TargetInterfacetargetInterfacemain() 中动态分配。

有没有办法为上述代码避免动态分配

最佳答案

这将是天真的答案:

void main()
{
FlashTarget target;
targetInterface = &target;
}

注意:使用这种方法,您必须确保只要targetInterface被使用,target就会存在。

关于c++ - 当我需要多态性时,如何避免动态分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41803726/

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