首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将结构传递给MQL4中的构造函数

将结构传递给MQL4中的构造函数
EN

Stack Overflow用户
提问于 2015-09-06 10:30:01
回答 2查看 2K关注 0票数 1

当你有10个或更多的参数时,将每个参数传递到一个构造函数中是单调乏味的,而且不太容易维护--这也使得读取构造函数参数变得相当拖累。

我想使用的模式通常用在Ruby/Node/Python中,我希望在MQL4中也有类似的东西

因此,我希望将一个键值对对象传递给包含所有参数的构造函数。不幸的是我得到了-

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
struct cannot be defined in param list. 

来自编译器的。

我是C语言的n00b,这是我第一次尝试MetaQuotes4编程(EA)。我已经在谷歌上搜索过文档了。除了文档上说的传递类、数组和结构只能通过引用传递之外,我找不到任何东西。

问题是第10行。

它加载了编译错误-由于这是一个WIP。其余的错误我可以处理,但是params中不允许的结构问题让我感到困惑。任何帮助或建议都是很棒的。

也许还有另一种模式呢?

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2015-09-06 18:39:36

要小心-- MQL4在很多方面与C++编译器不同

虽然语法构造函数可能看起来很相似,但在MetaLang.exe编译器的.MQL4编译中,实际使用是受到限制或禁止的。

所以,看起来很有前途,但不会满足你的愿望。

如您的打印屏幕所示,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
...
string symbol = params.symbol;
...

您计划在struct中也包含string类型的值。

虽然这是可能的,但是MQL4 documentation暗示了对这种struct使用的限制,并且被允许在函数调用参数传递中安全地使用的唯一形式的specialities.仅仅是一个简单结构,即没有任何字符串组件的struct (在MQL4领域花费多年之后,您已经为类似的准备了其中一些包括一个string,它内部不是string,而是一个struct,噩梦刚刚开始... (你可以想象,这会在你的DLL上发生什么--接口等。)。

不能将结构名称用作标识符(变量或函数的名称)。

应该注意的是,在MQL4结构元素之间直接对齐,没有.In C++,这样的顺序是使用以下指令向编译器做出的:#pragma pack(1)如果你想在结构中做另一个对齐,使用辅助成员,“填充”到正确的大小。

带有return运算符的

不能返回任何复合结构类型的数组、类对象和变量。

所以要小心,从头到尾地阅读MQL4文档,因为一些“特长”隐藏在一些地方,人们很难预先预料到它们。

票数 2
EN

Stack Overflow用户

发布于 2019-06-05 15:09:06

您可以将其传递给const StructDef &_var_name等构造函数,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Order {

  // Define struct.
  struct Params {
    string symbol;
    double market_entry;
    double loss_pips;
    double profit_pips;
  };
  // Struct class variable.
  Params params;

  public:
  Order(const Params &_params) {
    this.params = _params;
  };

}

然后像这样使用它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Params params = {_Symbol, Ask};
// or...
params.symbol = _Symbol;
params.market_entry = Ask;
// ... then:
Order *order = new Order(params);

请参阅:Structures, Classes and Interfaces

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32422569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文