본문 바로가기

프로그래밍/C++

객체지향 - 인터페이스와 구현의 분리 객체 지향에서는 인터페이스와 구현의 분리를 아주 중요하게 여깁니다. 인터페이스라는 용어는 여러곳에 쓰이는데,여기서의 인터페이스는 컴퓨터의 전원버튼을 생각하면, 쉽게 생각할수 있을듯 합니다. 왜!! 분리하느냐? 라는 것은 이것이 주는 이점을 알면 이해할 수 있겠죠. 눈 앞의 컴퓨터를 예로 들겠습니다. 컴퓨터 본체의 인터페이스를 살펴보면전원, 리셋버튼, 시디롬 버튼 등의 버튼들과 모니터 연결 케이블, 전원 케이블 등의 케이블이있습니다.. 우리는 본체내부의 CPU,RAM,BOARD작동 원리를 알 수 없습니다.혹시, 아시는분이 게시다면, 대단한 내공의 소유자군요..어쩄든, 대부분의 일반인은 그 내부의 구조를 자세히 알지 못합니다.뭐, 이외에도 TV나 비디오등 다른 전자기기에도 마.. 더보기
FreeImage 라이브러리 예전에 개발하던 그래픽 툴에 GIF 파일로딩과 생성기능을 만들어 달라고 요청을 받은적이 있다. 그래서 관련 라이브러리를 검색하던 도중에 괜찮은거를 하나 찾아 붙였는데 문제는 이게 상용라이브러리다. 이름은 정확히 기억이 안난다; 라이센스 비용도 별로 안하는데, 위에서는 구입을 꺼려하길래 다시 무료 라이브러리를 찾아 사용하게 되었다. FreeImage3154.pdf 전자의 라이브러리보다는 기능이 약간 떨어지지만, 그래도 나름 쓸만하다. 다른 사람들의 평가는 어떨지 모르겠다. 급한대로 그냥 사용했기 때문에.. 지원하는 포맷은 다음과 같다. Supported formats BMP files [reading, writing] Dr. Halo CUT files [reading] * DDS files [reading.. 더보기
C++ 헤더 중복방지 C++ 프로그래밍을 하면서 성가신 작업중 하나는 헤더파일이 꼬여서 해결하는 작업이다. 별거 아닌것 같지만, 이거 때문에 시간을 왕창 잡아먹는 경우도 생기는데.. C#에서는 헤더파일 자체가 없어져 버렸기 때문에 적어도 꼬일 걱정은 안하게 되었다. 암튼, C++에서 헤더 중복방지를 위해 하는 방법은 크게 2가지 정도 있는데 하나는 #pragma once키워드와 #define을 이용하는 방법이다. The use of #pragma once can reduce build times as the compiler will not open and read the file after the first #include of the file in the translation unit. #pragma once 는 컴파일러에.. 더보기