{ 네임스페이스 using이 무엇인가? namespace를 선언된 위치로 모두 끌고 오는 엄청난 매력적인 녀석이다. 사용 방법은 using std; 처럼 namespace를 지칭하면 된다. 이 매력적인 녀석이 왜 안되나? .. 너무 매력적이면 역시 근심 덩어리다. 앞에서 알짱거리는 매력적인 녀석을 항상 서로 차지하려고 다투는데 얼마나 골치 아프겠는가? (#include 앞) 예를 들어 줄 수 있는가? // s1.h 을 다음과 같이 만든다. #pragma once #include namespace A { int f(double) { std::cout
책 정리 검색 결과
{ 왜냐하면 의도하지 않은 이름 검색으로 혼란을 격게 되기 때문이다. 항목 57에서 이야기 했던 것의 반대 이야기이니, 크게 더 설명할 것이 없다. 이름 검색을 알게 되면, 함수의 호출이 머리속에 그려지기 때문에, 이상한 함수 호출이나 이상한 에러메세지는 "이름 검색이 꼬였나?" 를 생각해 보면 된다. }
{ 클래스의 일부가 되게끔 디자인된 비멤버 함수의 경우, 클래스와 같은 네임스페이스 내에 넣어야 한다는 것이다. 왜!? C++의 이름 검색 시스템 때문이다. 이 이름 검색 시스템은 Koenig lookup 라고도 불린다. 해당 사항을 자세히 말해 줄 수 있는가? 물론 말해 줄 수 있다. Exceptional C++ 항목 31 ~ 항목 34 에 무척 자세히 나와 있고, ikpil.com 에서 검색해도 어느 정도 나오니 한번 검색해 봄이 좋을 것 같다. 넣게 되면 무엇이 좋아 지는가? 최소한 컴파일러가 혼란을 겪는 것을 줄여 주고, 개발자 또한 혼란을 겪는 것을 줄여 줄 수 있다. 간략하게만 소개해 줄 수 있나? #include void swap( std::string const& str1, std::str..
{ 이번 장은 "1부, 템플릿 기본"에 속해 있다. 함수 템플릿이 무엇인가? 다양한 데이터형에 호출 되는 함수이다. 어떻게 함수 템플릿을 정의 하는가? 다음 처럼 정의 할 수 있다. // function family definition template T const& max( T const & a, T const& b ) { return a < b ? b : a; } 우선 fuction family 는 함수 템플릿을 가리키는 말인 것을 밝힌다. const 의 사용 법은 1장에서 말했던 규칙 데로 사용 됬다. 본론으로 들어와서 max 함수 템플릿은 a 와 b 중 큰 값을 리턴하며, 이때 a와 b의 타입은 아직 정해지지 않았으며, 타입을 typename T로 파라미터화 했다. 이 typename T를 템플릿..
들어가기에 앞서저자들에 대한 소개와, 책의 구성, 읽는 방법등을 설명하고, 이 책에서 사용된 코딩 스타일에 대해 몇가지 언급을 하는 항목이다. 이 중, 코딩 스타일에서 const 사용에 대해서 언급한 부분이 마음에 들어 정리 한다.책에서 언급하는 const 사용 방법 예시 int main( void ) { int normal_int = 100; const int const_int = 100; int const int_const = 100; const int * const_int_pointee = &const_int; int const * int_const_pointee = &int_const; int * const int_pointee_const = &normal_int; // 이 경우 CHARS를 ch..
{ 왜냐하면 swap은 강력한 도구로 만들어 주기 때문이다. 무엇을 위한 강력한 도구인가? 안전한 복사를 위한 것이다. 안전한 복사는 어떻게 만들 수 있는가? 여러가지 방법이 있지만, pimpl 이디엄이 가장 널리 쓰인다. 그리고 임시객체를 이용한 방법도 널리 쓰인다. 어떻게 만드는가? ... 귀찮.. 책을 보시라 ㅋㅋ }
최근댓글