学童的EOP。 - 页 14

 
Alexey Viktorov:

还有一个问题:声明一个变量、获取/创建一个指针、创建一个对象实例之间有什么区别。这不是区别,而是在哪些情况下使用更好。例如,只需声明一个用于开仓的变量即可。

以及在什么情况下使用指针更好,什么情况下我们不能没有对象实例。

一种方法或另一种方法的优点和缺点是什么?

因此,进入这门课的内涵,它可以在奶酪中找到。那里没有创造任何重要的东西,只是一套方法。

 
Alexey Viktorov:

因此,正是为了了解该如何选择,才提出了这个问题。不是为了巫医的比赛。

我现在不清醒,甚至非常清醒,但我要试一试。如果可靠性是你的第一条脉络,那么如果可能的话,遵循RAII原则就是你的一切(你声明一个对象,编译器会在它离开可见区时杀死它)。如果你想提高代码效率,一切都在向指针的方向发展。所以,这取决于每项任务的思考,没有通用的解决方案。
 
Alexey Viktorov:

因此,正是为了了解该如何选择,才提出了这个问题。不是为了巫医的比赛。

我理解的方式是。
如果每个堆栈创建一个对象,那么只适用于那些寿命不长、需要速度来创建对象 的对象,例如一个处理请求的类。
堆上的对象应该为那些不需要超速的长期对象创建,或者为避免丢失的重要对象创建。
而有时,例如在VS中,编译器不允许选择堆栈而只提供堆,也就是说,告诉你什么对这个对象更好。

 
Roman:

我理解的方式是。
如果每个堆栈创建一个对象,那么只对那些寿命不长、需要速度的对象进行创建,例如,用于处理请求的一个类。
堆上的对象应该为不需要超速的长期对象创建,或者为避免丢失这些对象的重要对象。
而有时,例如在VS中,编译器不允许选择堆栈而只提供堆,也就是说,告诉你什么对这个对象更好。

没有。我承认,前段时间我也搞错了。当一个对象在堆栈中被创建时,无论如何它都是在堆中被分配的,只有指针在堆栈中被创建。简单地说,当声明CObg obj时,它的析构器被保证在obj离开范围时被调用。
 
Vladimir Simakov:
不,我不知道。很抱歉,我也曾经搞错了。当一个对象在堆栈中被创建时,无论如何它都是在堆中被分配的,只有指针在堆栈中被创建。 只是在声明CObg obj时,它的析构器被保证在obj离开其可见区域时被调用。

也许它将被分配到堆上,我不知道 ))
但很多人声称,对象在堆栈上创建得更快。
显然大家都搞错了,我不知道 ))

 
Roman:

也许它确实分配到了这堆东西,我不知道 ))
但很多人声称,在堆栈上,对象的创建速度更快。
显然大家都搞错了,我不知道 ))

在有疑问时,是什么阻止了你去检查呢?如果它已经被测试和证明,为什么还要继续打趣呢?

 
Dmitry Fedoseev:

在有疑问时,是什么阻止了你去检查呢?既然已经被测试和证明,为什么还要继续胡闹呢?

我毫不怀疑 ))但也要检查一下,不知何故,还没有走到那一步。
你刚才写到了,所以如果已经被测试和证明,我们可以相信你这个老前辈的编码))。
我其实并不关心这种差异,堆积,堆积,但有时我也关心。

 

伙计们,我是一个逆行者,但有一个堆栈(当第一个存储值最后被检索时)和一个队列(当先入先出时)。

什么是 "堆"?

 
Alexey Viktorov:

因此,这是为了了解选择什么,这是所问的问题。这不是巫师们的测验。

是的,我忘了补充,如果你在一个堆上创建了几个对象,建议按照创建的相反顺序删除它们。

 
Roman:

是的,我忘了补充,如果在堆上创建了多个对象,建议按照创建的相反顺序删除它们。

所以,堆是一个栈。