香港:
  • 纽约:
  • 伦敦:
  • 东京:
  • 悉尼:
  • 香港:
  • 新加坡:
首页> 资讯> 最新 >正文

大白编程教学:MQL5中匿名计算无法被删除且无成倍继承

上篇,大白介绍了MQL5中没有运算地址,也无法使用goto语句,本文,我们将继续介绍MQL5和C++的两个不同,分别是:MQL5中的匿名计算无法被删除以及MQL5中无成倍继承。

大白MQL5编程教学2023.3.31 :MQL5和C++的主要区别在哪里?(下篇)

上篇,大白介绍了MQL5中没有运算地址,也无法使用goto语句,本文,我们将继续介绍MQL5和C++的两个不同,分别是:MQL5中的匿名计算无法被删除以及MQL5中无成倍继承。

不同点3——MQL5中匿名计算无法被删除

"匿名计算无法被删除":一旦进行了匿名计算并生成了结果,就无法将其完全从系统中删除。。

在MQL5中,匿名计算指的是通过使用函数指针或者函数对象,可以在不定义实际函数的情况下直接传递并执行一段代码。匿名计算是一种方便的编程技术,它可以提高代码的可读性和灵活性。

然而,一旦将匿名计算传递给某个函数或变量后,它就无法完全删除。具体而言,无法删除匿名计算的内存分配空间,因为MQL5并没有提供与C++中的delete运算符等效的方法来释放匿名计算的内存空间。

这与C++的lambda表达式有所不同。在C++中,lambda表达式可以在创建之后显式删除,因为C++提供了delete运算符来释放内存空间。

因此,在MQL5中,使用匿名计算时需要谨慎,尽可能避免在程序运行期间创建大量的匿名计算,以减少内存占用和程序性能问题。

大白点睛:匿名计算其实是无法完全删除。

不同点4——MQL5中无成倍继承

在面向对象编程中,继承是一种非常重要的概念。它允许新的类(子类)继承现有类(父类)的属性和方法,从而实现代码复用和扩展性。

在C++中,支持多继承(multiple inheritance),即一个子类可以继承多个父类的属性和方法。这种方式可以实现更灵活的代码设计,但也存在潜在的问题,例如由于继承了多个父类,可能会出现命名冲突、方法重复实现等问题。因此,在C++中需要使用虚拟继承(virtual inheritance)来解决这些问题。

而在MQL5中,由于其面向对象特性的限制,不支持多继承。即一个子类只能继承一个父类的属性和方法,无法实现无成倍继承。这种限制是由于MQL5主要是为了编写金融交易算法而设计的,因此采用了相对较为简单的面向对象设计。

下面是一个示例,演示了在C++中使用多继承和虚拟继承时的不同表现:

在这个示例中,类A和B都有一个同名的方法say_hello()。当使用多继承的方式时,如果一个子类继承了两个父类,且这两个父类都有一个同名的方法,则可能会出现方法被覆盖的问题。而当使用虚拟继承时,可以解决这个问题,从而避免了潜在的错误。在MQL5中,由于不支持多继承,无法实现上述示例中的C类。

大白点睛mql5一个子类只能继承一个父类。

【免责声明】123财经导航所发布的信息内容仅供交易投资者参考,并不构成投资建议“据此操作,风险自担”。网站上部分信息内容及图片来自于网络/注册作者/投稿人,版权归原作者所有,如有侵权,请您与我们联系关闭,邮箱:938123@qq.com。
第三方账号登录
第三方账号登录
第三方账号登录
  • *站点:
  • *网址:
  • 类型:
  • 联系方式:
  • 简介:

  • RRH123欢迎您的加入!如有问题请添加咨询管理员【微信号:938123】
  • *类型:
  • *问题:
  • 图片说明:
  • 联系方式:

  • RRH123感谢您的反馈!如有问题请添加咨询管理员【微信号:938123】