2017-01-16 236 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

看起来很接近,因为它确实创建了一个对象。谢谢。 –

相关问题