728x90

개발 9

7. MFC에 대하여

1. 아키텍처문서/뷰 아키텍처: MFC는 문서(Document)와 뷰(View)를 분리하여 애플리케이션의 데이터와 UI를 관리합니다. CDocument 클래스는 데이터와 비즈니스 로직을, CView 클래스는 사용자 인터페이스를 담당합니다.윈도우 클래스: MFC에서 CWinApp 클래스를 상속하여 애플리케이션을 정의하고, CFrameWnd 클래스를 상속하여 프레임 윈도우를 생성합니다.2. 메시지 맵메시지 처리: MFC는 Windows 메시지를 처리하기 위해 메시지 맵을 사용합니다. ON_COMMAND, ON_WM_PAINT 등의 매크로를 사용하여 메시지를 처리하는 핸들러 함수를 정의합니다.시스템 메시지: 예를 들어, WM_PAINT, WM_CLOSE, WM_SIZE 등의 메시지를 처리하여 애플리케이션의 동..

반도체/MFC 2024.08.20

5 .C++의 OnTimer MFC

C++에서 OnTimer는 일반적으로 GUI 프로그래밍 또는 이벤트 기반 프로그래밍에서 사용되는 메서드로, 타이머 이벤트를 처리하는 데 사용됩니다. 이 메서드는 특정 시간 간격마다 호출되어 특정 작업을 수행하도록 설정할 수 있습니다.1. 기본 개념타이머: 특정 시간 간격으로 이벤트가 발생하게 하는 기능입니다. 예를 들어, 애플리케이션이 일정 시간마다 화면을 갱신하거나, 주기적으로 데이터를 체크할 때 사용됩니다.OnTimer 메서드: 타이머가 만료될 때 호출되는 콜백 함수로, 타이머가 설정된 시간 간격에 도달했을 때 실행할 코드를 포함합니다.2. 예제 (Win32 API)Win32 API를 사용하는 C++ 프로그램에서 OnTimer를 구현하는 간단한 예를 들어보겠습니다.#include LRESULT CAL..

반도체/MFC 2024.08.20

27. C++열거형

C++에서 열거형(enum)은 명명된 정수 상수의 집합을 정의하는 데 사용되는 데이터 형식으로, 주로 코드의 가독성을 높이고 상수 값을 의미 있게 표현하는 데 유용합니다. 열거형에 대한 구체적인 설명을 아래와 같이 정리해 보겠습니다.1. 기본 열거형 (enum)기본적인 열거형은 다음과 같이 정의할 수 있습니다.enum EnumName { Constant1, Constant2, Constant3, // ...};예제:#include enum Day { MONDAY, // 0 TUESDAY, // 1 WEDNESDAY, // 2 THURSDAY, // 3 FRIDAY, // 4 SATURDAY, // 5 SUNDAY // 6..

반도체/C++ 2024.08.20

20.C++ 템플릿과 함수 오버로딩의 차이

1. 정의템플릿: 템플릿은 함수나 클래스를 정의할 때 데이터 타입을 일반화하여 여러 타입에 대해 동일한 로직을 적용할 수 있게 해줍니다. 템플릿은 컴파일 시간에 인스턴스화되어 특정 타입에 맞는 코드로 변환됩니다.함수 오버로딩: 함수 오버로딩은 같은 이름의 함수를 여러 개 정의하되, 매개변수의 타입이나 개수를 다르게 하여 서로 다른 기능을 수행할 수 있게 합니다. 즉, 함수의 이름은 같지만 매개변수의 목록이 다릅니다. 템플릿 예제:template T add(T a, T b) { return a + b;}함수 오버로딩 예제:int add(int a, int b) { return a + b;}double add(double a, double b) { return a + b;}3. 타입 결정 시..

반도체/C++ 2024.07.31

19. C++의 객체지향 4가지

C++의 객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 소프트웨어 개발에서 객체를 중심으로 설계하는 프로그래밍 패러다임. C++는 OOP의 4가지 주요 개념인 캡슐화, 상속, 다형성, 추상화를 지원  1. 캡슐화 (Encapsulation)설명: 객체의 상태(데이터)와 동작(메서드)을 하나의 단위로 묶어 외부로부터 보호하는 것입니다. 이를 통해 데이터에 대한 직접적인 접근을 제한하고, 객체의 내부 구현을 숨길 수 있습니다.예제:class Account {private: double balance; // private 멤버 변수public: // 생성자 Account(double initialBalance) : balance(initialBalance)..

반도체/C++ 2024.07.31

C#과 C++의 특징과 차이점 (2)

1. 언어의 유형C++: 객체 지향 프로그래밍(OOP)과 절차적 프로그래밍을 지원하는 고급 프로그래밍 언어입니다. 시스템 프로그래밍, 게임 개발, 성능이 중요한 애플리케이션에 주로 사용됩니다.C#: 주로 객체 지향 프로그래밍을 위한 언어로, .NET 플랫폼에서 실행됩니다. 웹 애플리케이션, 데스크탑 애플리케이션, 모바일 애플리케이션 등 다양한 분야에서 사용됩니다.2. 메모리 관리C++: 프로그래머가 직접 메모리를 관리해야 하며, new와 delete를 사용하여 메모리를 할당하고 해제합니다. 포인터를 사용할 수 있어 메모리 접근이 유연하지만, 메모리 누수나 오류의 위험이 있습니다.C#: 가비지 컬렉션(GC)을 통해 자동으로 메모리를 관리합니다. 개발자가 직접 메모리를 관리할 필요가 없어, 메모리 누수의 위..

IT 2024.07.30

17. C++의 템플릿

C++의 템플릿은 코드의 재사용성을 높이고, 다양한 데이터 타입에 대해 일반화된 함수를 작성할 수 있도록 하는 강력한 기능입니다.  템플릿을 사용하면 특정 데이터 타입에 의존하지 않고, 여러 타입에 대해 동일한 로직을 적용  주로 함수 템플릿과 클래스 템플릿 두 가지 유형  1. 함수 템플릿 (Function Templates)함수 템플릿은 다양한 데이터 타입에 대해 동일한 함수를 작성할 수 있게 해줍니다. 함수 템플릿을 정의할 때는 template 키워드를 사용합니다. #include using namespace std;// 함수 템플릿 정의template T add(T a, T b) { return a + b;}int main() { cout 위 예제에서 add 함수는 T라는 템플릿 매개변..

반도체/C++ 2024.07.29

11. C++ 함수 (2)

C++에서 함수는 특정 작업을 수행하는 코드 블록으로, 재사용 가능성을 높이고 프로그램을 구조화하는 데 중요한 역할을 합니다. 함수는 입력값(인수)을 받아 처리한 후, 결과값(반환값)을 돌려주기 가능' 함수의 구성 요소함수 선언 (Function Declaration):함수의 이름, 반환 타입, 매개변수 목록을 정의합니다.예: int add(int a, int b);함수 정의 (Function Definition):함수의 실제 동작을 구현하는 부분입니다.예:int add(int a, int b) { return a + b;}함수 호출 (Function Call):정의된 함수를 실행하는 방법입니다.예: int result = add(5, 3);    함수의 요소반환 타입 (Return Type): 함..

반도체/C++ 2024.07.25

10. C++의 함수 (1)

1. 반환 타입 (Return Type)함수가 호출된 후 반환하는 값의 데이터 타입입니다. 반환 타입은 함수 선언과 정의에서 명시되어야 하며, 반환값이 없을 경우 void를 사용합니다.예: int, float, double, void 등.2. 함수 이름 (Function Name)함수를 식별하는 이름으로, 일반적으로 함수의 기능을 설명하는 의미 있는 이름을 사용합니다. 함수 이름은 변수와 동일한 규칙을 따릅니다.3. 매개변수 목록 (Parameter List)함수가 호출될 때 전달받는 입력값(매개변수)의 목록입니다. 매개변수는 데이터 타입과 변수 이름으로 구성됩니다. 매개변수는 선택적이며, 함수는 매개변수가 없을 수도 있습니다.예: (int a, int b) 처럼 여러 개의 매개변수를 가질 수 있습니다...

반도체/C++ 2024.07.25
728x90