Page 110

C++는 문법이 복잡하고 상황에 따라 의미가 크게 달라지는 부분이 많다. C++ 프로그래밍의 경험이 쌓일수록 이렇게 까다로운 부분에 익숙해지면서 나중에는 자연스럽게까지 느껴진다. 하지만 그래도 여전히 헷갈리는 부분이 있다. 이러한 사항에 대해 자세히 설명하는 책도 별로 없고, 있다 해도 매번 다시 찾아봐야 할 정도로 머리에 남지 않기 때문이다. 이 장에서는 문제 를 조금이나마 해소하도록 C++에서도 특히 헷갈리고 특이한 부분을 집중적으로 살펴본다.

C++에서 특이한 부분은 이 책 전반에 흩어져 있다. 따라서 같은 내용을 반복하지 않도록 이 장에서는 다른 장에서는 다루지 않은 주제만 다룬다. 그래도 어쩔 수 없이 중복되는 내용은 다 른 관점에서 살펴본다. 이 장에서는 레퍼런스, const, constexpr, static, extern, 타입 앨리어스, typedef, 캐스 팅, 스코프 지정, 어트리뷰트, 사용자 정의 리터럴, 헤더 파일, 가변 길이 인수 리스트, 전처리 매크로 등에서 미묘한 부분을 다룬다. 여러 주제를 일관성 없이 나열한 것처럼 보이지만 나름

C++에서 헷갈리는 것들만 엄선했다.

11.1 레퍼런스 레퍼런스는 이 책에 나온 예제뿐만 아니라 전문 C++ 프로그래머가 작성한 코드에서 흔히 볼 수 있다. 따라서 시간을 충분히 갖고 레퍼런스 타입이 정확히 무엇인지, 구체적으로 어떻게 작 동하는지 살펴볼 필요가 있다.

C++에서 레퍼런스(참조)란 일종의 변수에 대한 앨리어스 alias (별칭)다. 레퍼런스를 이용해서 수정한 내용은 그 레퍼런스가 가리키는 변수의 값에 그대로 반영된다. 레퍼런스는 변수의 주소 를 가져오거나 변수에 대한 역참조 연산을 수행하는 작업을 자동으로 처리해주는 특수한 포인 터라고 볼 수 있다. 또는 변수에 대한 다른 이름(별칭)이라 생각해도 된다. 변수를 레퍼런스로 만들 수 있고, 클래스의 데이터 멤버를 레퍼런스로 만들 수 있고, 함수나 메서드가 레퍼런스를 매개변수로 받거나 레퍼런스를 리턴하게 만들 수 있다.

11.1.1 레퍼런스 변수 레퍼런스 변수는 반드시 생성하자마자 초기화해야 한다. 예를 들면 다음과 같다. int x = 3; int& xRef = x;

496 3부 전문가답게 C++ 코딩하기

Profile for 한빛미디어

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

Advertisement