본문 바로가기

c++

한 스트림을 다른 스트림으로 연결하기 한 스트림을 다른 스트림으로 연결하기 배경 C++에서 기본적으로 전역으로 제공하는 스트림은 네 개가 있습니다. 바로 cin, cout, cerr, clog 입니다. ( clog는 C++에서 처음 생긴 것으로 알고 있습니다. 긴 입력을 받아들이는 데 좋다고 합니다. ) 하지만 윈도우 프로그래밍과 같이 콘솔창을 쓰지 않는 프로그램을 짤 떄에는 저 객체들은 쓸모없어집니다. 그럴 떄에 저 스트림을 파일로 돌리면 저 객체를 다시 이용할 수 있게 됩니다. 특히 에러로그 등을 남길 때 쓸만하죠. 또한 스트림 형태와 호환되는 객체를 만들었다면 그곳으로 연결해줄 수도 있습니다. 이 글에서는 스트림을 다른 스트림과 연결하는 방법에 대해서 소개하려고 합니다. 방법 C++ 스트림에서는 다른 스트림과 엮어주는 것을 두 가지를 .. 더보기
DXUT Framework 간단 가이드 DXUT Framework를 이용하면 별다른 설정 없이 손쉽게 그래픽 작업을 시작할 수 있습니다. DirectX Sample Browser에서 Empty Project를 원하는 이름으로 수정한 뒤에 Install을 하면 그 뼈대(Framework)를 제공해 줍니다. 하지만 안타깝게도 이 DXUT Framework에 대한 문서나 튜토리얼은 쉽게 찾기가 어렵습니다. 그래서 Framework의 구조와 여기서 쓰이는 Callback 함수에 대해 약간의 정보를 적어봅니다. DXUT Callback 함수 프로젝트 안의 Winmain()의 내용을 보면 DXUTSetCallbackDeviceCreated( OnCreateDevice ); DXUTSetCallbackDeviceReset( OnResetDevice ); .. 더보기
[C++] 헤더파일을 나누어 은닉화 구현하기 [C++] 헤더파일을 나누어 은닉화 구현하기 배경 이 내용은 모듈화에 대한 생각으로부터 시작합니다. 저는 개인적으로 어떤 코드 조각이 큼지막한 것을 꽤 싫어합니다. 특히 헤더가 지저분한 것은 딱 질색입니다. 일반적으로 헤더는 사용자가 쓰기에 일목요연하고 정리된 모습을 보여줘야 한다고 생각합니다. 그러기 위해서는 필요에 의한 것(객체 혹은 함수)들과 사용자에게 제공하는 것들을 구분할 필요가 있습니다. 이에 관하여 흥미로운 내용을 [The C++ Programming Language]에서 발견하였고 그 내용을 간단히 정리하고자 합니다. 사용자와 구현자 일반적으로 어떠한 코드 조각(Code segmant)를 구현하였을 때, 그 코드 조각이 필요한 사람들은 대부분 사용자와 구현자 로 구분할 수 있습니다. 구현자.. 더보기