在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()
中动态分配的。有没有一种方法可以避免为上述代码动态分配?
最佳答案
这将是天真的答案:
void main()
{
FlashTarget target;
targetInterface = ⌖
}
注意:使用这种方法,必须确保只要使用
target
,targetInterface
就会存在。