[c++] `.h` 파일과 `.cc` 파일

About_work·2024년 9월 3일
0

c++

목록 보기
1/8

1. 기초

  • C++에서는 이러한 파일들을 사용하여 코드의 구조를 체계적으로 관리하고, 컴파일 과정을 통해 최종 실행 파일을 생성

1. .h 파일 (Header File)

  • 역할: .h 파일은 헤더 파일이라고 불리며,
    • 함수, 클래스, 변수 등의 선언을 포함
    • 이 파일은 코드의 인터페이스를 정의하는 데 사용
  • 기능:
    • 다른 파일이나 모듈에서 사용될 함수나 클래스의 서명을 정의
    • 하지만 실제로 그 함수나 클래스가 어떻게 동작하는지에 대한 구현(정의)은 포함하지 않음

예시: calculator.h

  • 아래 예시에서 calculator.hCalculator 클래스의 선언을 포함
  • 클래스 안에는 addsubtract라는 두 개의 함수가 정의되어 있지만, 이 함수들이 실제로 어떻게 작동하는지는 설명되지 않았음
// calculator.h

#ifndef CALCULATOR_H
#define CALCULATOR_H

class Calculator {
public:
    int add(int a, int b);       // 함수 선언
    int subtract(int a, int b);  // 함수 선언
};

#endif // CALCULATOR_H

2. .cc 파일 (Implementation File)

  • 역할:
    • .cc 파일은 구현 파일이라고 불리며, 주로 .h 파일에 선언된 함수나 클래스의 구현(정의)을 포함합니다.
  • 기능:
    • .h 파일에 선언된 함수와 클래스가 실제로 어떻게 동작하는지에 대한 구체적인 코드를 제공

예시: calculator.cc

// calculator.cc

#include "calculator.h"

int Calculator::add(int a, int b) {
    return a + b;  // 함수 구현
}

int Calculator::subtract(int a, int b) {
    return a - b;  // 함수 구현
}
  • 위 예시에서 calculator.cc 파일은 calculator.h에서 선언된 Calculator 클래스의 addsubtract 함수가 실제로 어떻게 동작하는지 구현
  • 이 파일에서는 add 함수가 두 숫자를 더하고, subtract 함수가 두 숫자를 뺀다는 것이 구체적으로 설명

프로그램을 동작시키기 위한 과정

  1. 작성: 개발자는 .h 파일에 인터페이스를 선언하고, .cc 파일에 구현을 작성
  2. 컴파일(Compile): C++ 컴파일러는 .cc 파일들을 컴파일
  • .cc 파일은 컴파일되어 객체 파일(.o 또는 .obj 파일)로 변환
  • 이때, .h 파일은 컴파일되지 않고, 단지 컴파일러가 .cc 파일을 컴파일할 때 필요한 선언을 제공하는 역할
  1. 링킹(Link):
  • 컴파일된 객체 파일들(.o 또는 .obj 파일)을 링크하여 하나의 실행 가능한 프로그램으로 만듦
  • 이 단계에서, 여러 객체 파일들이 결합되고, 프로그램의 실행에 필요한 모든 코드가 하나의 바이너리 파일로 생성
  1. 실행: 최종적으로 생성된 실행 파일을 실행하여 프로그램을 동작

요약

  • .h 파일(헤더 파일):
    • 클래스와 함수의 인터페이스를 선언
    • 다른 파일에서 공통으로 사용
  • .cc 파일(구현 파일):
    • 헤더 파일에 선언된 클래스와 함수의 구체적인 동작을 구현
  • 컴파일 과정:
    • 컴파일러는 .cc 파일을 객체 파일로 변환하고, 링커는 이를 결합하여 최종 실행 파일을 생성
profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글