7
如何在C ++中“返回对象”?
我知道标题听起来很耳熟,因为有许多类似的问题,但是我要问的是问题的另一个方面(我知道将事物放在堆栈上并将它们放在堆上的区别)。 在Java中,我总是可以返回对“本地”对象的引用 public Thing calculateThing() { Thing thing = new Thing(); // do calculations and modify thing return thing; } 在C ++中,要做类似的事情,我有2个选择 (1)每当需要“返回”对象时,我都可以使用引用 void calculateThing(Thing& thing) { // do calculations and modify thing } 然后像这样使用它 Thing thing; calculateThing(thing); (2)或者我可以返回指向动态分配对象的指针 Thing* calculateThing() { Thing* thing(new Thing()); // do calculations and modify …