在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
源自TargetInterface
,targetInterface
是main()
动态分配的。
上述代码是否可以避免动态分配?
答案 0 :(得分:3)
这将是天真的答案:
void main()
{
FlashTarget target;
targetInterface = ⌖
}
注意:使用这种方法,必须确保target
只要使用targetInterface
就会生效。