본문 바로가기

#C++

C++참조변수-2 참조변수 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에 좋치 않습니다. 아래와 같이 적용하면 임시객체를 사용하지.. 더보기
C++ 참조변수-1 오늘은 참조변수에 대해서 알아보겠습니다.변수를 만든다는것은 Memory를 잡는다는거죠. 하지만 아닌경우도 있습니다. int a = 10; // 변수선언을 했네요. Memory를 할당하는거죠.int* b = &a; // Pointer변수를 선언했네요. Pointer를 Memory 에 할당했습니다.int& r = a // C++에서는 참조라는것도 있습니다. 기존 변수(Memory)에 별명입니다. r =20; 을 수행하면 a에 20이 저장되죠. 참조는 기존 Memory에 별명이기 때문에 대부분 Memory를 사용하지 않치만. 일부 컴파일러나 복잡한 Code에서는 Pointer Memory를 사용할 수 있습니다. 아래와 같은 경우는 어떻게 될까요?. Call by value, Call by Pointer도 아니.. 더보기