关键字将new
指向创建的对象的指针返回给您,这意味着您必须继续遵守它 - 我只是担心性能可能会受到影响。
例如我面临的一个常见情况:
class cls {
obj *x; ...
}
// Later, in some member function:
x = new obj(...);
for (i ...) x->bar[i] = x->foo(i + x->baz); // much dereferencing
我也不太热衷于引用变量,因为我有很多*x
's(例如*x, *y, *z, ...
)并且不得不&x_ref = *x, &y_ref = *y, ...
在每个函数的开头编写很快就会变得乏味和冗长。
确实,这样做更好吗:
class cls {
obj x; ... // not pointer
}
x_ptr = new obj(...);
x = *x_ptr; // then work with x, not pointer;
那么,使用由 创建的变量的标准方法是new
什么?