int year;
int month;
int day;
ADate * date = new ADate(year, month, day);
我知道它通常用於指針,但我不知道它在這裏做什麼。沒有它,該行顯然創建了一個新的ADate,並且傳入了這些int變量,但我不確定這樣做會改變這個嗎?*在這種情況下做什麼?:
int year;
int month;
int day;
ADate * date = new ADate(year, month, day);
我知道它通常用於指針,但我不知道它在這裏做什麼。沒有它,該行顯然創建了一個新的ADate,並且傳入了這些int變量,但我不確定這樣做會改變這個嗎?*在這種情況下做什麼?:
隨着*
,date
被聲明爲指針類型,它存儲ADate
對象的地址(指向ADate
目的)。否則,date
將被聲明爲ADate
對象類型。
運營商new
返回一個指針。因此,如果沒有*
,您的程序將無法成功編譯。
呵呵,這似乎是,謝謝你的額外信息。 編輯:燁,這實際上非常有幫助謝謝! –
在C++中使用new
關鍵字創建對象時,必須使用*
。嘗試刪除*
,您將收到錯誤消息。
ADate * date = new ADate(year, month, day);
在這種情況下,*date
是指向ADate
對象的指針。
如果不使用new
關鍵字,您可以創建ADate
對象像ADate date(year,month,day);
如果沒有看到'ADate'的定義,你就不能這麼說。 – juanchopanza
看起來很接近,因爲它確實創建了一個對象。謝謝。 –
這個問題最好用C++書來解答。也許你應該看看[C++推薦書目列表](http://stackoverflow.com/questions/388242/)。 – jaggedSpire
只是一個由新的AData構造的指針。 – Max
讀一本關於指針的書C++ – Raindrop7