내가 C++에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve C++ 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 typename .. 뭐 이렇게만 보면 이런게 있었나 싶다. 하지만 템플릿에서는 흔하게 보는 키워드인데, 이 키워드에 대해서 제대로 파악하자고 하는것 같다. 처음부터 진행하자면 typename 과 class 는 똑같은 의미인데, 이렇게 말만 하면 혼동의 요지가 있으니, 코드도 포함해 주는 센스를 발휘해 본다. // ikpil.com or ikpil.tistory.com #include //template // class _T 와 같은 의미 template..
EC++ 검색 결과
내가 C++에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve C++ 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. 항목 41의 이야기를 어떻게 풀어 갈지, 감이 오지 않았다. 그 이것은 항목 41을 잘 이해하지 못했다는 것을 증명하기라도 하듯, 나는 책을 여러번 반복해서 읽을 수 밖에 없었다. 시작하기 앞서 한가지만 기억하자, 템플릿 프로그래밍은 모두 컴파일 타임에 결정 된다! 나머지는 그냥 읽기만 하자. 어찌 보면 이 한가지 기억은 Goto 같은 녀석이다.. ..(왜 컴파일 타임에 결정하느냐? 라고 하면 .. 별도로 템플릿 프로그래밍에 관련된 책을 구입하여 공부하는게 좋을듯 ..
내가 C++에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve C++ 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. 본론으로 들어와서, 나는 설계 단계에서 다중 상속 할까낭~ 하는 생각을 한적은 있었지만, 지금까지 다중 상속을 해서 코딩한적은 없다. 왜냐하면, 일단 설계단계 조차 난해하고, 조금 복잡해지는 경향이 있었다. 그래서 스스로가 "지금 여기에 꼭 필요한가?" 란 질문에 항상 "지금은 아니오" 라고 답하곤 했기 때문이다. 이번 항목 40의 제목처럼 "다중 상속은 심사숙고해서 사용하자" 로 이야기 하고 있다. 그렇다면 나는 이런 생각을 하곤 한다. "왜!? 무엇 때문에!?"..
public 상속이나 protected 상속, private 상속일 때, 인터페이스(접근 할 범위)가 어떻게 바뀌는지 안다는 전제하에서 이야기를 진행한다. private 상속은 (is-implemented-in-terms-of) 패턴을 뜻한다. 즉, ...는 ...를 써서 구현되었다 라고 할수 있다. 38항목에 자세하게 적어 두었으니 읽어 보면 도움이 될 듯 하다. 자 소스 코드가 있어야 이해가 될듯 하여, 소스코드를 포함한다. #include class Ctest { protected: Ctest( ) : a( 1 ) { std::cout
저번장까지는 설계에 관한 이야기보다는 상속시 유의해야 되는 부분이 강조되었다면, 이번 항목은 .. 설계에 관한 부분이다. 나는 지금까지 private 상속이면 "is-implemented-in-terms-of(...는...를 써서 구현됨)" 이고 클래스 내부에서 객체선언하면 "has-a(...는...를가짐)" 이다 라고 이해했지만, 이것은 잘못된 이해이다. 각각은 추상화된 설계 패턴의 일부분이라는 것이다. 이 패턴 들은 객체 합성으로(.. 이라고 불리지만, 레이어링, 포함 통합 내장 으로도 불린다)으로 만들수 있다는 것이다. 그렇다면 다시 제목을 봐보자.. 항목 38: "has-a(...는...를가짐)" 혹은 "is-implemented-in-terms-of(...는...를 써서 구현됨)"를 모형화 할 ..
최근댓글