newb c ++问题:何时使用“新”?

时间:2011-02-22 19:03:50

标签: c++

  

可能重复:
  when should I use the new operator in C++

说我有一个名为Money的类,它有参数美元和美分

我可以通过以下两种方式初始化它

1)钱a(3,15);

2)金钱* b =新钱(3,15);

我的问题是我何时应该使用1)以及何时应该使用2)

2 个答案:

答案 0 :(得分:0)

1)创建类型为a的本地对象Money,该对象在堆栈上分配。当a超出范围时,它将被销毁,例如: G。当创建它的函数退出时。

2)在堆上动态分配类型为Money的对象。即使在创建它的函数退出之后,该对象仍将持续存在,直到调用delete为止。

如果您只需要在函数中使用对象,通常可以使用1)。如果在函数退出后需要对象保持不变,请使用2)。您还应该使用2)如果对象非常大,我。即如果它占用了大量的内存。如果您使用2),请记住在不再需要该对象时调用delete

还有更多内容,例如使用多态,但这应该让你开始。

答案 1 :(得分:0)

  

第一个创建Money对象   在堆栈上,它的生命周期在   它的创建时间范围。   当你点击它时的含义它会消失   范围和内存的返回。   想要创建时使用此选项   一个函数中的对象。

     

第二个创建一个Money对象   在堆上,它的寿命是长的   如你所愿,即直到你   删除它。当你想要的时候使用它   要传递的对象   不同的功能

信用:https://stackoverflow.com/users/369503/yoel