Game Develop

[C++] 크기가 큰 멤버변수를 읽어들일 때 참조자 활용도 고려 본문

C++/C++

[C++] 크기가 큰 멤버변수를 읽어들일 때 참조자 활용도 고려

MaxLevel 2022. 11. 29. 04:51

 

특정 클래스에서 크기가  큰 멤버변수를 Get하고 싶을 때, 위 코드처럼 참조자를 활용하는것도 고려할 방법 중 하나이다.

 

A클래스가 정말 크기가 큰 데이터라 가정했을 때, 참조자말고 그냥 리턴시키면 값복사하는데 꽤나 비용이 들 것이다.

 

하지만 저렇게 참조자로 하면 복사할 필요 없으니 굿...

 

다만 const 키워드를 꼭 붙이도록 하자. 참조자를 리턴시키기 때문에 캡슐화가 깨질 수 있기 때문이다.

 

해당 참조자로 밖에서 임의로 값을 변경하는걸 막아야 한다.

 

위 코드는 그냥 예시용 코드긴 한데, A클래스의 print에 const가 붙어있는 이유는, GetA()는 결국 const 객체의 참조자를 리턴하는 것이기 때문이다. const객체는 const 멤버함수만 호출할 수 있기 때문에, print함수에 const키워드가 반드시 붙어있어야 한다.