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