我有一个奇怪的问题,我在我的项目中实现了运行时多态性,这是一个交易项目(服务器),在这里我得到了一个实例初始化的错误,我尽了最大的努力,但没有得到任何解决方案。这是显示编译错误的代码,它是"include/Trading_GenericTemplate.h:37: error: expected constructor, destructor, or type conversion before â=â token“
#ifndef STRAT_TRADING_TEMPLATE_H
#define STRAT_TRADING_TEMPLATE_H
class STRAT_TEMPLATE
{
public :
STRAT_TEMPLATE()
{}
virtual int EntrySignal(int instMapI, float *param)
{}
virtual int EntryPricer(int instMapI, float *param)
{}
virtual bool ExitSignal(int instMapI, float *param)
{}
virtual int ExitPricer(int instMapI, float *param)
{}
virtual void Init(int instMapI)
{}
};
class B :public STRAT_TEMPLATE
{
public :
B()
{}
int EntrySignal(int instMapI, float *param)
{}
int EntryPricer(int instMapI, float *param)
{}
bool ExitSignal(int instMapI, float *param)
{}
int ExitPricer(int instMapI, float *param)
{}
void Init(int instMapI)
{}
};
STRAT_TEMPLATE* startTrading[20];
startTrading[0] = new B();
#endif让我简单地描述一下我到底想做什么,我需要20个基类的实例,然后每个实例都需要由它的不同子类对象初始化,这些对象将在其他头文件中定义。但是在初始化它的第一个子类对象后,我得到了这个错误。我已经实现了这个链接https://www.geeksforgeeks.org/virtual-functions-and-runtime-polymorphism-in-c-set-1-introduction/代码,在同一台机器上的一个简单的cpp程序中得到了完美的执行。所以请帮助我们解决问题和解决方案。提前谢谢。
发布于 2020-08-29 15:42:56
赋值语句startTrading[0] = new B();只能在函数体中使用,不允许在全局范围内使用。
你可以这样做
STRAT_TEMPLATE* startTrading[20] = { new B() };https://stackoverflow.com/questions/63644552
复制相似问题