c++ 은 클래스를 지원한다. 클래스는 쉽게 말해 함수와 변수를 담고 있는 객체다.
분할 컴파일
c++은 분할 컴파일을 지원한다. 같은 클래스를 여러개의 파일로 관리할 수 있다.
#include "클래스이름"
과 같이 적으면, 해당 파일은 이 클래스에 종속된다.
따라서 헤더 파일에는 클래스의 선언만 하고, 소스 파일에 함수, 변수 등을 선언하는 방식으로 사용 가능하다.
클래스의 컴파일
헤더 파일은 단 한번 컴파일로 모든 헤더 파일을 컴파일하게 된다.
즉 만약 내가 A라는 헤더파일을 만들고 B라는 헤더파일을 만들었다고 가정해보자. 이때 나는 두개의 클래스를 각각 include 할 필요가 없다. 하나만 include 해도 나머지 역시 자동으로 컴파일되기 때문이다.
#pragma once
컴파일시 한번만 정의되도록 한다.
추상화
함수의 선언과 실제 구현을 구분할 수 있다.
//A.h 파일
#pragma once
class A {
public:
void out();
};
// AFunc.cpp파일
#include "A.h"
#include <iostream>
void A::out() {
std::cout << "A입니다.";
}
// main코드
#include "A.h"
using namespace std;
int main() {
A a;
a.out();
}