做的有什么区别,
EventList temp;
EventList* temp = new EventList();
Run Code Online (Sandbox Code Playgroud)
现在临时你通过使用.
而访问它的变量,而另一个是->
除了这个差异,还有什么?只是EventList在堆栈上时,指针在堆上分配.它主要是范围的东西吗?
有简短的总结
堆栈上的对象 EventList temp;
堆上的对象 EventList* temp = new EventList();
Eventlist temp在调用它的范围内自动分配和释放。也就是说,当您运行以下代码时:
{
EventList temp;
}
Run Code Online (Sandbox Code Playgroud)
for 的默认构造函数EventList在声明时调用,析构函数在块末尾调用。
EventList *temp = new EventList();分配在堆上。你可以在这里读更多关于它的内容。