안녕하세요! 이번 글에서는 MFC를 사용하면서 문자열 리스트를 관리하는 방법중 하나인 CStringList클래스 사용 방에 대해 알아보겠습니다. CStringList 클래스는 문자열 리스트를 관리하고 조작하는 데 도움을 주는 유용한 클래스 중 하나입니다. 이번 포스팅에서는 CStringList 클래스의 기본적인 사용법과 예제 코드를 살펴보겠습니다. CStringList CStringList 클래스는 MFC에서 문자열 리스트를 저장하고 다루는 데 사용됩니다. 문자열을 추가, 제거, 검색, 정렬 등을 할 때 편리하게 사용할 수 있습니다. 주요 기능 문자열 추가 AddTail(const CString& str) 리스트의 끝에 새로운 문자열을 추가합니다. CStringList strList; strList.Ad..
안녕하세요! 이번에는 C++로 폭탄 피하기 콘솔 게임을 만들어보겠습니다. 이 게임은 콘솔 창에서 폭탄맨을 조작하여 폭탄을 피하고 최대한 오래 살아남는 게임입니다. 게임 구현에 사용된 코드와 코드 해석을 자세하게 살펴보면서 즐거운 플레이와 함께 C++ 프로그래밍에 대해 배워보도록 합시다. *콘솔 특성 상 텍스트를 지우고 쓰는 과정에서 깜빡임이 있고, 꾹 누르는 등의 연속적인 키입력이 불가합니다. #include #include #include #include #include #include const int WIDTH = 30; const int HEIGHT = 20; const char PLAYER_CHAR = '@'; const char BOMB_CHAR = 'O'; int player..
안녕하세요! 이번 글에서는 클래스의 상호참조에서 발생하는 문제를 해결하는 방법에 대해 알아보겠습니다. 클래스 상호참조 시 컴파일러는 [C3646 알수없는 재정의 지정자입니다.], [C4430 형식 지정자가 없습니다. int로 가정합니다.], [C2061 구문오류 : 식별자]등 모호한 에러코드를 남겨 원인을 찾기 힘들게 합니다. 이럴 때 당황하지 않고 상호참조를 우회하여 에러를 해결하는 방법을 제시해 드리겠습니다. 상호참조 클래스 간의 상호참조는 헤더 파일의 순환 참조 문제를 일으킬 수 있습니다. 이러한 문제를 해결하기 위해 전방선언을 사용할 수 있습니다. 전방선언은 클래스를 선언하기 전에 해당 클래스의 존재를 컴파일러에 알려주는 역할을 합니다. 이를 통해 클래스 간의 상호참조를 우회할 수 있습니다. 상호..
안녕하세요! 이번 글에서는 삼항 연산자에 대해서 알아보겠습니다. 삼항 연산자는 세 개의 피연산자를 가지고 조건을 평가하여 결과를 반환하는 연산자입니다. 사용법 (condition) ? expression1 : expression2; 위의 형식에서 condition은 평가할 조건을 나타내는 식이고, expression1은 조건이 참인 경우 반환될 값 또는 수행될 표현식입니다. expression2는 조건이 거짓인 경우 반환될 값 또는 수행될 표현식입니다. 특징 삼항 연산자는 if-else 문의 간단한 대체 수단으로 사용될 수 있습니다. 조건에 따라 두 개의 다른 결과를 반환하거나 두 개의 다른 표현식을 실행해야 할 때 유용합니다. 삼항 연산자의 결과는 조건에 따라 달라지며, 반환되는 값 또는 수행되는 표현..
안녕하세요! 이번 글에서는 OnGetMinMaxInfo함수에 대해 알아보겠습니다. OnGetMinMaxInfo 함수는 MFC에서 윈도우의 최소 및 최대 크기를 제한하는 함수로, 윈도우 크기 조정에 관련된 작업을 수행합니다. 이 함수를 재정의하여 윈도우의 크기를 제한하거나 특정 제약 조건을 적용할 수 있습니다. OnGetMinMaxInfo 함수의 역할 윈도우의 최소 및 최대 크기를 제한합니다. WM_GETMINMAXINFO 메시지를 처리하여 윈도우의 크기 조정에 대한 제약 조건을 설정합니다. 최소 및 최대 윈도우 크기, 최소 및 최대 추천 윈도우 위치 등을 설정할 수 있습니다. 최대화 또는 최소화 작업 시 윈도우의 크기와 위치를 제어할 수 있습니다. 예제 코드 void CMFCTESTDlg::OnGetMi..
안녕하세요! 이번 글에서는 SOLID원칙에 대해 알아보겠습니다. SOLID는 소프트웨어 개발에서 유지보수 가능하고 확장 가능한 소프트웨어를 설계하기 위한 다섯 가지 원칙의 약어입니다. 이 원칙들은 객체 지향 설계의 핵심 원리로 알려져 있으며, 소프트웨어의 유연성, 확장성, 재사용성을 향상시키기 위해 적용됩니다. 단일 책임 원칙 (Single Responsibility Principle, SRP) 단일 책임 원칙은 클래스는 하나의 책임만 가져야 한다는 원칙입니다. 즉, 클래스는 변경의 이유가 하나여야 합니다. 이를 통해 클래스의 응집도를 높이고, 변경이 필요한 경우 다른 클래스에 영향을 미치지 않도록 합니다. 개방-폐쇄 원칙 (Open-Closed Principle, OCP) 개방-폐쇄 원칙은 소프트웨어 ..