본문 바로가기
번역/Bjarne Stroustrup's C++ Style and Technique FAQ

Can I use "new" just as in Java?

by 겜게준 2019. 12. 9.

Java처럼 "new"를 사용해도 되나요?


어느정도는 가능하지만, 무작정 사용하지는 말고, 때로는 더 나은 대안이 있을 수 있습니다.

void compute(cmplx z, double d)
{
cmplx z2 = z+d; // c++ style
z2 = f(z2); // use z2

cmplx& z3 = *new cmplx(z+d); // Java style (assuming Java could overload +)
z3 = f(z3);
delete &z3;
}

z3의 서투른 new의 사용은 불필요할 뿐더러 관용적으로 사용하는 로컬 변수 (z2) 와 비교해서 느리기까지 합니다. 객체를 생성할 때 같은 스코프에서 해당 객체를 "delete"를 할 경우에는 "new"를 사용할 필요가 없습니다. 이런 객체는 로컬 변수여야 합니다.

댓글