说我有一个名为Money的类,它有参数美元和美分
我可以通过以下两种方式初始化它
1)钱a(3,15);
2)金钱* b =新钱(3,15);
我的问题是我何时应该使用1)以及何时应该使用2)
答案 0 :(得分:0)
1)创建类型为a
的本地对象Money
,该对象在堆栈上分配。当a
超出范围时,它将被销毁,例如: G。当创建它的函数退出时。
2)在堆上动态分配类型为Money
的对象。即使在创建它的函数退出之后,该对象仍将持续存在,直到调用delete
为止。
如果您只需要在函数中使用对象,通常可以使用1)。如果在函数退出后需要对象保持不变,请使用2)。您还应该使用2)如果对象非常大,我。即如果它占用了大量的内存。如果您使用2),请记住在不再需要该对象时调用delete
。
还有更多内容,例如使用多态,但这应该让你开始。
答案 1 :(得分:0)
第一个创建Money对象 在堆栈上,它的生命周期在 它的创建时间范围。 当你点击它时的含义它会消失 范围和内存的返回。 想要创建时使用此选项 一个函数中的对象。
第二个创建一个Money对象 在堆上,它的寿命是长的 如你所愿,即直到你 删除它。当你想要的时候使用它 要传递的对象 不同的功能