2017-01-16 271 views
-4
int year; 
int month; 
int day; 

ADate * date = new ADate(year, month, day); 

我知道它通常用於指針,但我不知道它在這裏做什麼。沒有它,該行顯然創建了一個新的ADate,並且傳入了這些int變量,但我不確定這樣做會改變這個嗎?*在這種情況下做什麼?:

+3

這個問題最好用C++書來解答。也許你應該看看[C++推薦書目列表](http://stackoverflow.com/questions/388242/)。 – jaggedSpire

+1

只是一個由新的AData構造的指針。 – Max

+0

讀一本關於指針的書C++ – Raindrop7

回答

1

隨着*date被聲明爲指針類型,它存儲ADate對象的地址(指向ADate目的)。否則,date將被聲明爲ADate對象類型。

運營商new返回一個指針。因此,如果沒有*,您的程序將無法成功編譯。

http://www.cplusplus.com/reference/new/operator%20new/

+0

呵呵,這似乎是,謝謝你的額外信息。 編輯:燁,這實際上非常有幫助謝謝! –

0

在C++中使用new關鍵字創建對象時,必須使用*。嘗試刪除*,您將收到錯誤消息。

ADate * date = new ADate(year, month, day);在這種情況下,*date是指向ADate對象的指針。

如果不使用new關鍵字,您可以創建ADate對象像ADate date(year,month,day);

+0

如果沒有看到'ADate'的定義,你就不能這麼說。 – juanchopanza

+0

看起來很接近,因爲它確實創建了一個對象。謝謝。 –

相關問題