簡體   English   中英

MQL4:對象=(Class *)NULL;

[英]MQL4: Object = (Class*)NULL;

我在嘗試改進的程序中遇到了這個問題。

class Class1
{
    private:

    public:
       Class1();
       ~Class1();

    protected:

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

有人可以告訴我*在創建對象時是什么意思,為什么在實例化類時將使對象=該類為空。 我有一本書可以閱讀嗎? 或關於MQL4,C ++中的類和對象的任何好的文檔或網頁...

C ++中的*表示它是指向對象的指針。

初始化一個指向NULL的指針意味着它指向無處(順便說一下,現在nullptr將是一個更好的選擇)。

通常,在代碼中的某個時刻,您會發現一些語句,例如:

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

關於C ++的大多數書籍都對指針進行了深入的解釋。

因此,我的第一個答案是B.Stroustrup的“ C ++編程語言”。

一些在線教程: 此處此處

編輯:MQL4語言

在MQL4語言中,它過去一直基於類似C的語法構造,並且最近的擴展(后Build 509)帶來了更多的擴展(從MQL5域借來的), *也是指向對象的指針,而new動態地創建了一個對象。 但是,與C ++不同,它不是指向內存位置的直接指針,而是使用描述符概念的間接指針。

像C ++中一樣,預定義的常量變量NULL表示沒有值。 可以將其分配給任何其他基本類型的變量,而無需進行轉換。 允許將基本類型變量與NULL值進行比較。

在“ New-MQL4”(內部版本509)中,也可以將NULL與使用new運算符創建的對象的指針進行比較。

(感謝user3666197提供額外的MQL4特定信息)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM