MQL4:Object =(Class *)NULL;

时间:2014-09-23 20:55:09

标签: c++ mql4

我在一个我正在努力改进的计划中遇到过这个问题。

class Class1
{
    private:

    public:
       Class1();
       ~Class1();

    protected:

        Class2* Object2;   
};
Imbalance::Imbalance()
  {
   Object2 = (Class2*)NULL;
  }

有人可以告诉我在创建对象时*意味着什么以及为什么在实例化类时你会使对象=类的东西为null。有没有我能读到的书?或者MQL4,C ++中的类和对象上的任何好的文档或网页......

1 个答案:

答案 0 :(得分:2)

C ++中的*意味着它是指向对象的指针。

初始化指向NULL的指针意味着它指向无处(顺便说一下,nullptr将成为更好的选择)。

通常,在您的代码中,您会找到一些声明,如:

if ( Object2 == NULL )       // if not pointing to an object 
     Object2 =  new Class2;  // create a new one 

大多数关于C ++的书籍都在深入解释指针。

所以我的第一个答案是来自B.Stroustrup的“C ++编程语言”。

一些在线教程:herehere

编辑:MQL4语言

在MQL4语言中,历史上基于类似C语法的构造和最近(后Build 509)扩展带来了更多(借用MQL5域), * 是也是指向对象的指针, new 动态创建对象。但与C ++不同,它不是指向内存位置的直接指针,而是使用descriptor概念的间接指针。

预定义的常量变量NULL意味着 - 就像在C ++中一样 - 没有任何价值。它可以在没有转换的情况下分配给任何其他基本类型的变量。允许将基本类型变量与NULL值进行比较。

在“New-MQL4”(构建版本509)中,NULL也可以与使用new运算符创建的对象的指针进行比较。

(感谢user3666197获取额外的MQL4特定信息)