C++/C++

[C++] 여러개의 헤더와 소스

메카인 2023. 2. 13. 02:01

◆암묵적인 헤더 파일과 소스 파일의 룰

▷일반적으로 많은 C++ 개발자는 헤더파일 한개와 소스파일 한개를 이용해 클래스를 정의하여 사용한다.

예제

 

◆클래스의 멤버함수 분리

▷클래스에서 맴버함수의 선언과 정의를 분리하기 위해서는 클래스에는 함수의 선언부분만 남겨둔 이후에 소스파일에서 해당 클래스의 함수를 정의하면 된다.

선언형식 클래스명::맴버함수명(파라미터){

   ...

}

//ex
//Human.h
#include <cstdio>
class Human{
public:
	void printName();
};

//Human.cpp
#include "Human.h"
void Human::printName(){
	printf("%d",name);
}

 

◆여러개의 헤더파일 사용시 중복 선언에 의한 오류 처리 

//1. #pragma once 를 첫번째 줄에 추가한다.
#pragma once

//2. #ifndef : 만약 ~가 선언되지 않았다면
#ifndef __HEADER_H__
#define __HEADER_H__
...
#endif

 

◆클래스 선언이 필요할 때 

//클래스 선언이 사용하는 코드가 아래에 있을경우
//전방 선언을 한다.
class Animal;

 

◆중복 발생 오류가 발생할 경우

▷헤더에 선언만 되어있는지 확인한다. (코드 순서의 차이로 인해서 선언이 아닌 몸통이 있다면 오류 발생)

▷중복 선언되는 변수는 cpp 파일로 이동한다.