c++ - 错误,“include/Trading_GenericTemplate.h:37: 错误:预期构造函数、析构函数或 â=â 标记之前的类型转换”
问题描述
我有一个奇怪的问题,我正在我的项目中实现运行时多态性,这是一个交易项目(服务器),这里我遇到了实例初始化错误,我尽了最大努力但无法得到任何解决方案。这是显示编译错误的代码"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 程序中完美执行的代码。所以请帮助解决问题和解决方案。提前致谢。
解决方案
赋值语句startTrading[0] = new B();
只能在函数体中使用,在全局范围内是不允许的。
你可以做
STRAT_TEMPLATE* startTrading[20] = { new B() };
推荐阅读
- r - 确定至少一行在列中具有不同值的重复行
- python - 使用词嵌入进行分类
- node.js - JSON stringify 和 PostgreSQL bigint 合规性
- angular - Angular - template parse errors
is not a known element - mysql - ERROR 1215 (HY000): Cannot add foreign key constraint. Tried many times
- r - Removing all columns with all NAs in a data.frame without a loop in R
- android - 如何在嵌套线性布局中使 imageButton 的高度占屏幕尺寸的 25%。Android XML 横向布局
- ruby-on-rails - 如何在 ActionMailer Previews 中使用设置方法?
- grails - grails generate-controller creating strange interface service
- python - Keras:修复使用 model.fit 时出现的“IndexError: list index out of range”错误