본문 바로가기

프로그래밍/언어_스크립트36

typedef - 사용자 정의형, 함수 포인터 * typedef int integer ~~~~~~~ ~~~ ~~~~~~~ integer 라고 쓰여진 놈을 int로 생각하라~ * typedef struct _MyData MyData ~~~~~~~ ~~~~~~~~~~~~~~ ~~~~~~ MyData 라고 쓰여진 놈을 struct _MyData로 생각하라~ * typedef sturct _MyData * PMyData ~~~~~~~ ~~~~~~~~~~~~~~~~ ~~~~~~~ PMyData 라고 쓰여진 놈을 struct _MyDaa *로 생각하라~ %% 마지막 단어를 typedef 다음에 오는 단어부터 마지막 white space 전까지의 문장으로 인식하도록~ (?) * typedef void (*FuncPtr)( param ) ~~~~~~~ ~~~~ ~.. 2008. 2. 19.
[Study Effective C++] new로 생성한 객체를 스마트 포인터에 넣는 코드는 별도의 한 문장으로~ void processWidget( std::tr1::shared_ptr pw ); 라는 함수를 호출 할 때 processWidget( new Widget ); 으로 컴파일 하지말 것! (아니 컴파일이 안된다고 함!) 위 호출은 std::tr1::shared_ptr pw( new Widget ); processWidget( pw ); 와 같이 호출할 것!!! [출처] Effective C++ - Scott Meyers / 곽재용 2008. 2. 13.
[Study Effective C++] 자원 관리는 객체로~ * 무슨 말인고 하니 자원을 클래스로 만들어 관리하면 (생성자에서 자원을 할당하고 소멸자에서 해제) 객체가 생성될 때 자원 할당 (생성자), 객체가 사라질 때 자동으로 해제 (소멸자) 된다. 생성된 객체가 스코프룰을 벗어날 때도 자동으로 (당연하지 않은가?) 자원이 해제된다. 예제로... 기존에 해봤던 AutoCriticalSection 이 있겠다. 그런데 C++ 표준 함수에서 std::auto_ptr 템플릿과 std::tr1::shared_ptr 템플릿을 제공하여 위 사항을 고려하지 않은 클래스에 대해서도 자동화 할 수 있다. 나이스~ 잘 이해가 안가는 내용 두가지. * 위의 스마트 포인터 템플릿을 사용하지 않을 경우 주의할점은.. 자원의 복사시에 어떻게 처리할까 하는 문제인데 처리 방법만 얘기한다면 .. 2008. 2. 13.
[Study Effective C++] 대입 연산자의 오버로딩에서 빠지지 말아야 할 것! * 리턴은 반드시 *this * 자기 대입에 대한 처리! if ( const ref Param of ThisClass == *this ) return *this; [출처] Effective C++ - Scott Meyers / 곽재용 2008. 2. 12.