const에 대한 잘못된 믿음으로, "컴파일러가 const 객체를 상수 비트로 올려 최적화를 시킨다." 라는 믿음이 있다. 이번 항목에선 "왜 이런 믿음이 생겼는지?", "어떤 경우에는 안되는지?" 에 대해서 이야기 한다. 알다시피 질문을 통해 접근해 보도록 한다. 1 ) 다음 코드에서 class X { private: int a; int b; int c; }; class Y { private: int a; int b; int c; }; const Y& f( const X& x ) { // ... x에 대해 뭔가 수행하고 Y 객체 하나를 찾는다. Y someY; return someY; } int main( void ) { X x; f( x ); return 0; } 매개변수나 반환값 또는 둘 다를 co..
책 정리 검색 결과
1 ) 메모리가 충분하지 않을 경우 표준 형태의 new들이 오류를 보고하는 두 가지 주된 방식들을 설명하라. 표준형태 하나는 std::bad_alloc 예외를 던지는 방법과, 예외를 던지지 않고, NULL을 리턴하는 방법, 이렇게 두가지가 있다. 2 ) 예외를 던지지 않는 nothrow 형태의 new가 좀더 예외에 안전한 코드를 작성하는 데 도움이 될까? 근거와 함께 답하라. 나는 도움이 된다고 생각한다. 왜냐하면, NULL 을 반환하게 되었을 때, 처리하지 않고, 지나가면 되기 때문이다. 하지만 이 근거를 곰곰히 생각해 보면, 필요한 메모리를 잡는게 오류가 났는데, 어떻게 정상적으로 프로그램이 구동 될 수 있겠냐는 오류를 범한 것이다. 이 NULL 이 반환하게 되었을 때, 곰곰히 생각해 보면, 나는 할..
이번 항목은 new 에 대한 설명이다. 1 ) C++ 표준에 있는 new의 세 가지 형태는 무엇인가? 보통 new(new), 비투척 new(notrow new), 위치지정 new(placement new) 이렇게 있다. 아래 표를 보자 표준 new들 추가적인 매개변수 할당 수행 실패 가능 예외 던짐 교체가능 보통 new 없음 예 예(예외 던짐) std::bad_alloc 예 비투척 new std::nothrow_t 예 예(널 반환) 아니요 예 위치지정 new void* 아니요 아니요 아니요 아니요 한가지 신기한 것은 위치지정 new 의 경우, 메모리 할당을 수행하지 않는 다는 것! 이다. 위치지정 new의 경우, 그 자리에 생성자를 실생 시키는 역활을 수행한다. 2 ) 클래스에 고유한 new는 무엇이며,..
이번 항목은 메모리를 잡기 위해서 어떤 비용을 내고, 얼마나 잡히는지 생각해 보는 계기가 될 수 있을 것이라 생각하게 해 주는 항목이다. 1 ) new나 malloc으로 메모리 n 바이트를 잡으려 할 때, n 바이트만 잡힐까? 이 질문의 대답은 "적어도 n 바이트" 이상 잡힐 수 있다로 말 할 수 있다. 왜냐하면 "관리를 위한 기록", "조각(chunck)크기에 따른 여백" 때문이다. 관리를 위한 기록은 무엇인가? 범용 메모리 관리자를 이용하여, 메모리를 잡게 되면, 얼마나 잡혔는지 기록하는데, 이 기록은 나중에 해제하고자 할 때, 얼마나 해제 할지 결정하기 위해서이다. 일반적으로 최상위 메모리 번지에 기록해 둔다. 조각(chunk)크기에 의한 여백은 무엇인가? 고정 크기로 잡기 때문에, 고정 크기보다 ..
이번 항목에선 여러 수준의 메모리 관리 개념과, 중요성을 프로그래머에게 알려 준다. 1 ) 메모리 관리자 또는 메모리 할당자는 무엇이며, 그 기본 기능은 무엇인가? C++의 주된 동적 메모리 관리 전략 두가지를 간략히 서술하라. 메모리 관리자(memory manager) 또는 메모리 할당자(memory allocator)는 무엇인가? 말 그대로, 메모리를 관리해 주거나, 할당해 주는 녀석이다. 이 녀석들의 기본 기능은 무엇인가? 메모리를 얻어와 주거나, 메모리를 없애 준다. 경우에 따라선 쓰지 않으면 없애주기도 한다. C++의 주된 동적 메모리 관리 전략 두가지는 무엇인가? 범용 할당(general-purpose allocation) : 요청된 크기 만큼 메모리를 할당하는 전략, 매우 범용 적으로 사용 ..
캄컴(http://kangcom.com/common/bookinfo/bookinfo.asp?sku=199509120002#0)에서의 서평을 보고 구입을 했다. 원서라 살까 말까 했었는데, 영어 공부도 할 겸, 개념도 잡을 겸 구입을 하게 되었다. 책의 소스가 많아서, 시디가 없을까? 했는데 당연히 없고, 인터넷을 돌아 다니면서 소스를 찾았다. 소스 링크 : http://jinaida.egloos.com/2205709 3천원에 구입을 했는데, 책 상태는 그런데로 깨끗하고 좋다. 이제 영어 사전과 같이 봐야 할 첫번째 책이 되지 않을까 한다. 아마존 서평 : http://www.amazon.com/Art-Science-Library-Introduction-Computer/dp/0201543222 현재 총 3..
최근댓글