자기 자신을 가리키는 포인터를 리턴하는 함수를 작성할 수 있는가? 그렇다면 그런 함수를 작성 하는 이유는 무엇인가? .. 질문은 이렇게 시작한다. 나에게 큰 시련을 안겨줄것에 대한 운명은 전혀 예상치 못했다. 이렇게 막히게 될 줄이야.. 질문을 시작 하면 1. 함수에 대한 포인터는 무엇인가? 어떻게 사용 될 수 있을까? 개인적으로 생각 하자면, 인공지능에 사용 되면 무척 편리하다는 생각을 했었다. 각 상태에 맞게 함수를 붙여 주면서 그 객체의 인공지능이 상태에 맞게 스위칭되는 것을 외부에서 관리할 수 있어, 인공지능 매니저가 인공지능 함수를 관리해서 쓴다면 좋을거 같다. 다른 대안으로는 STL 컨테이너 검색 및 변경 작업에 쓰면 좋을 듯 싶지만, 이건 함수 오브젝트가 있는 이상 ... 그다지 유용하지 않..
책 정리 검색 결과
저번 항목에 연이은 네임스페이스 이야기이다. 역시 알아두면 무척이나 유용하기에, 재미있게 읽을 수 있었다. 언제나 그렇듯 네임스페이스를 알고 있다면, 어떻게 사용하는게 좋을까? 에 대한 논의이다. 저번 항목에서 using 키워드 하나로 사용하기 꺼려진다면, 당신은 루키, 떠오르는 샛별!, 그 느낌 그대로 계속 정진해야겠다. .. 알면 알수록 .. 점점 키워드라든지 어떤 편한것에 대해서 점점 아예 사용하기 꺼려진다. 타이핑 몇번(using 키워드의 타이핑)만 해서 편해지는 것 보다, 타이핑 몇번(std:: 로 직접 호출)하는것이 더 좋겠다. 이번 항목은 이런 꺼려지는 내용들에 대한 마지막 정리이다. 네임스페이스로 마이그레이션은 책을 통해 보면 금방 이해하니 예제코드는 제외하고.. 요령만 정리하자면 1. u..
More Exceptional C++ 의 7단원 "그 밖의 주제들" 은 대체로 난이도가 낮고, 많이 알려져 있는 사실들이 있어서, 술술 읽고 넘어간다. 이번 항목은 잘 사용하지 않았던 네임스페이스를 지금에서야 사용하면서 그 편리함에 탄복했던 나에게 절실히 필요했던 항목이기도 하다. C++ 에서 컴파일러가 이름을 찾는 규칙에 대해서는 "The C++ Programming Language" 에서 자세히 나와 있어, 언제 기회가 생기면 정리하도록 하고, 우선 More Exceptional C++ 에서 나온 주제를 정리하도록 한다. 잠깐, 꼭 이름 찾기 규칙을 알고 넘어가야 할 것이다. 질문 using 선언과 using 지시자는 무엇이고, 어떻게 사용되는가? 둘 중 순서에 영향을 받는 것은? 해설 C++ 표준화..
이번 항목은 이름을에 별명을 지어 줄때 쓰는 typedef 에 대한 이야기이다. 저번 Exceptional C++ 에서 다루지 않았던 내용이라 새로웠지만, Effectivce C++ 에서 다루었던 내용이고, 평소에 그 유용성과 좋지 않을 때를 알고 있떤 터러, 정리 차원에서 다시 정리한다. 질문 1. typedef를 사용하는 이유는? 생각나는 대로 이유/상황을 적어 보자. 질문 2. STL 컨테이너를 사용하는 코드에서 typedef를 사용하면 왜 좋을까? 해설 질문 1 typedef를 사용 하는 이유는? 우선 코드가 짦아져서 좋고, 함수 포인터 등을 쓰려고 할 때 편하며, 또한 템플릿 클래스에 사용하기 용이하며, 한가지 타입을 한번에 변환하고자 할때 편하다. 그리고 그 타입에 대한 의사 전달에 가능하다...
해당 이야기에 대해서 Exceptional C++ 항목 26 ~ 28 에서 정리해 두었다. 참조 : http://www.ikpil.com/709 요약하자면, std 안에 살고 클래스든 구조체든 무엇이든 간에 전방 선언을 해서는 안된다. 이것은 컴파일러와 라이브러리 작성자에게만 해당되는 그들만의 특권이다. 총평 .. 알던 내용이라 그냥 휙~ 휙~ namespace 안에 전방선언해서 쓸수 있겠으나 알 필요도 없고 알아서도 안되는 방법이나 그냥 넘기고, 쓰지 말아야 한다라고 기억하면 된다. 왜냐하면 std 네임스페스를 내 마음데로 했을 경우, ... 그 감당을 할 수 있을 만큼 나는 아직 강하지 못하다. .. 물론 강하다면 쓰여지지 않는게 더 강하다는것을 알게 되겠지만... : )
이번 항목에선 객체를 초기화하는 방법들과 그 차이점에 대한 논의이다. 객체를 초기화 하는 방법으로는 크게 생성자 호출로 인한 초기화 방법과 복사 생성자 호출로 인한 초기화 두가지가 있다. 이 차이를 확실히 알아야지만, 최소한의 최적화(?)와 버그들을 잡을 수 있을 것이라고 나는 생각한다. More Exceptional C++ 의 7단원, 37 항목에서 이 내용에 대해서 자세히 언급하고 있는데, 생각해 볼만한 질문을 두개 던저준다. 질문 1. 생성자 호출로 인한 초기화와 복사 생성자 호출로 인한 초기화의 차이점은 무엇인가? 질문 2. 다음 예제중 생성자 호출로 인한 초기화와 복사 생성자 호출로 인한 초기화를 구분 지어 설명 하라. class T : public S { public: T() : S( 1 )/..
최근댓글