[명품 C++ Programming] chapter 3 : 클래스와 객체(5) - 바람직한 C++ 프로그램 작성법

eunee22·2023년 8월 11일

명품 C++ Programming

목록 보기
14/34

제가 대학교 1학년 때 [명품 C++ Programming] 교재로 진행되는 C++ 수업에서 배운 내용을 교재와 ppt를 중심으로 정리한 내용입니다.
(2022.9 ~ 2022.12)
당시에 공부를 위해서 HWP 파일로 정리해 놓은 것을 그대로 올립니다.

🍑바람직한 C++ 프로그램 작성법

헤더 파일과 cpp 파일 분리

소스코드 분리 원칙

  1. 클래스마다 선언부는 헤더 파일.h에, 구현부는 cpp 파일에 분리하여 작성
  2. main()등 함수나 전역 변수는 한 개 이상의 cpp 파일에 나누어 작성

  • 소스코드 분리의 목적
    → 클래스의 재사용
  • 클래스를 재사용 하기 위해서는 클래스가 선언된 헤더 파일을 include 해야함
    #include “헤더파일명.h”
  • 헤더 파일에 클래스의 구현부가 들어가면, 헤더파일을 include 하는 여러 소스 파일에 구현부가 중복해서 들어가게 되므로 분리 → 링크오류 발생

헤더 파일을 중복 include 할 때 생기는 문제점 해결

  • cpp 파일에서 클래스가 선언된 헤더 파일을 여러번 include 하면 중복 선언으로 컴파일 오류가 발생할 수 있음

  • 헤더 파일을 중복 include 해도 오류가 나지 않도록 할수 있음
    → 조건 컴파일 문을 삽입

    1. #define CIRCLE_H

      • main() 함수의 첫 번째 #include “Circle.h” 이 처리될 때 CIRCLE_H 상수가 정의
      • 클래스 Circle의 선언부가 main.cpp에 확장.
    2. #indef CIRCLE_H

      • main() 함수의 두 번째 #include “Circle.h” 가 처리될 때 CIRCLE_H 상수가 이미 정의 되어 있기에 다음 조건 컴파일 문의 값이 false가 되어 #endif 문 밖으로 빠져나옴.
      • 클래스 Circle의 선언부가 main.cpp에 확장X.
      • 두 번째 이상부터는 처리 방식 모두 동일.
    3. #endif

profile
보안 공부하는 대학교 4학년 / 시리즈에서 더욱 편하게 글을 찾아보실 수 있습니다:)

0개의 댓글