Software/C++
C++참조변수-2
pthread
2016. 7. 30. 22:36
반응형
참조변수 2. 이번에는 임시객체(temporary object)를 최소화 하기 위해 사용되는 경우를 정리 하겠습니다.
struct Data {
int a, b;
};
Data d ={1,2);
Data test() // Data개체를 넘기게 됩니다.
{ return d; }
int main()
{
test().a = 10
// d.a 는 어떤값을 가지게 될까요.? 이값은 그냥 1입니다.
위에 내용은 정상적으로 컴파일되지만, 문제는 test()에서 넘어오는 Object가
임시객체이기 때문입니다. test().a =10에서 사용되고 Destroy됩니다.
test()함수에서 return d;는 임시객체를 만들고 전달하게 됩니다.
이런 임시객체는 성능과 Memory에 좋치 않습니다.
아래와 같이 적용하면 임시객체를 사용하지 않게 됩니다.
Data& test() { return d; }
또한 d.a는 10으로 Update되게 됩니다,
반응형