[英]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.