MFC에서 매크로를 클래스의 선언부와 정의부에 매크로를 선언하는 이유가 뭘까?
일반적으로 그렇다고 알려져있지만, 구체적으로 MFC가 내부적으로 많은 코드 생성 매크로를 사용하기 때문이다. MFC의 내부적인 코드 생성 기술을 사용하기 위함이고, 이는 코드의 가독성을 향상시키고, 클래스의 구현과 관련된 복잡한 코드를 단순화할 수 있다. 즉, 클래스의 메타 데이터를 정의하기 위해 사용되고, 주로 클래스의 구현을 정의하기 위해서 사용된다.
1. 클래스의 메타 데이터를 정의
예를 들어, DECLARE_DYNAMIC 매크로는 클래스가 동적으로 생성될 수 있음을 나타내는 메타 데이터를 생성하고, 이러한 메타 데이터는 컴파일러가 클래스를 처리할 때 필요한 정보를 제공한다.
2. 클래스의 구현을 정의
예를 들어, IMPLEMENT_DYNAMIC 매크로는 클래스의 동적 생성 함수를 정의한다. 이러한 매크로는 클래스의 구현과 관련된 내용을 제공하며, 템플릿과 같은 코드 생성 기술을 사용하여 컴파일러가 필요한 코드를 생성하도록 한다.
'통신 > 데이터통신시스템' 카테고리의 다른 글
[MFC] MFC 전역 함수 (0) | 2023.02.26 |
---|---|
[MFC] Object 클래스 : 타당성 점검 (0) | 2023.02.24 |
[MFC] CObject 클래스 : 직렬화(serialization) 기능 (0) | 2023.02.23 |
[MFC] CObject 클래스 : 동적 객체 생성 기능 (0) | 2023.02.22 |
[MFC] CObject 클래스 : 실행 시간 클래스 정보 (0) | 2023.02.20 |