본문 바로가기

class7

[WIN32 API]기본 class 작업 기본 class 작업 저번에 정리한 API 코드를 class화 하는 작업입니다. 일단 코드를 먼저 보도록 하겠습니다. class C_MYWIN { private: HINSTANCE m_hInstance; HWND m_hWnd; private: static C_MYWIN *m_pMyWin; public: static void createWin(); static C_MYWIN *getWin(); static void releaseWin(); private: C_MYWIN(); static LRESULT CALLBACK wndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK myProc(HWND hWnd, UINT mes.. 2018. 4. 25.
[C++]static 정적 변수와 Class static 정적 변수 static 정적 변수는 전역 변수의 성질과 namespace기능을 가진 변수입니다. static 정적 변수는 2가지 성질을 가집니다. 1.static 정적 변수는 프로그램이 시작될 때 메모리를 잡습니다. 즉, 프로그램이 시작될 때 정적 변수가 생성되고 초기화되며 프로그램이 종료할 때까지 존재합니다. (전역 변수의 성질) 2. static 정적 변수는 선언된 지역(scope)에서만 사용이 가능합니다. (지역 변수의 성질) void func(); int main() { func(); func(); func(); return 0; } void func() { static int nData = 0; nData++; printf("%d \n", nData); } func()라는 함수가 있.. 2018. 2. 27.
[C++]Class의 기본 형태 Class의 기본 형태 class를 구현할 때 기본적인 모습은 다음과 같습니다. class C_DATA { private: ... public: C_DATA(); C_DATA(const C_DATA &) = delete; const C_DATA& operator=(const C_DATA &) = delete; virtual ~C_DATA();// class가 상속을 받는 다면 추가되어야할 내용 public: void init(); void release(); void setData(int nData); int getData(); }; 생성자는 기본적인 초기화 작업을 하며 이후 초기 값 세팅은 init() 함수를 따로 구현하여 사용합니다. 소멸자의 경우 아무 일도 하지 않도록 하며 굳이 정의하지 않아도 되.. 2018. 1. 30.
[C++]Class 상속 Class 상속 class에서 상속은 상위 개념을 하위 개념이 상속받아서 사용하는 것입니다. 그리고 상속을 사용하기 위해서는 추상화와 구체화의 구분이 명확해야 합니다. 따라서 class 상속을 공통적인 부분을 구현하여 상속받아 사용한다는 것은 틀린 개념이고, 이렇게 사용할 경우 추후에 수정이나 추가를 해야 할 경우 구현해야 하는 부분이 많아지고 복잡해집니다. Class 상속 사용 방법 상위 class(부모 class)를 하위 class(자식 class)가 상속받기 위해서는 하위 클래스 이름 옆에 ' : '와 접근 제한자, 그리고 상속할 class 이름을 붙여주시면 됩니다. class C_PARENT { ... }; class C_CHILD : public C_PARENR { ... }; Class 상속의.. 2018. 1. 30.
[C++]Class 소멸자(Destructor) 소멸자 소멸자는 class의 생성자와 반대로 객체가 소멸될 때(메모리 해제) 자동으로 호출되는 함수입니다. 형태는 반환형과 함수 인자가 없습니다. 인자가 없으므로 함수 오버로드가 불가능하며 class내에는 단 하나의 소멸자만 존재합니다. 따로 구현하지 않을 경우 default 소멸자가 자동으로 호출되며 기능은 없습니다. default 소멸자의 형태는 다음과 같습니다. class C_DATA { private: int m_nData; public: C_DATA(); ~C_DATA(); }; C_DATA::~C_DATA() { } 함수의 형태는 class 명 앞에 ~ 기호가 붙어 "~()"의 형태를 가집니다. default 소멸자의 경우 아무 기능이 없기 때문에 함수의 정의는 있지만 안에 내용은 없습니다. .. 2018. 1. 25.