본문 바로가기

Programming/C++

파일분할




사실 예제로 설명하는 소스들은 이해를 돕기위해서 짧은 소스들을 사용하는데요. 나중에 정말 몇 십명, 몇 백백명 사람들끼리 프로그램을 만드는 프로젝트를 한다고하면 소스가 엄청 복잡해질겁니다. 



그래서 클래스 선언부, 클래스 정의부, 소스부를 나눠서 작업을 하게됩니다.





그렇다면 소스를 과연 어떻게 나누는지에 대해서 알아보도록 하겠습니다.


그전에!!!!


1. 헤더파일의 역할

2. #ifndef ~ #endif

3. 둘 이상의 파일을 컴파일 하는 방법

4. 링커의 역할


위 4가지에 대해서 먼저 공부하시길 바랍니다.!!!!  





- 클래스 선언부


클래스 선언부는 "헤더파일"을 만들어서 저장합니다.




Car 클래스와 관련된 정보이기 때문에 필요한 위치에 쉽게 포함될 수 있도록 하기 위해서 헤더파일에 저장하게 됩니다.





- 클래스 정의부




클래스의 정의부는 해당 클래스를 사용하기 위해 정의하는 곳입니다. 즉, 함수의 기능들을 구현해놓은 곳이라고 생각하면 됩니다.






- 메인함수





실질적으로 컴파일이 되면 만들어지는 곳이 main함수 입니다. 이곳에서 컴파일을 하면 실행이되죠.








그렇다면 인라인 함수를 사용하면 어떻게 해야 할까요?

그냥 클래스 정의부에 있는곳에 모두 inline을 해보도록 하겠습니다.








inline화 시켰더니 에러메시지가 나타납니다. 


인라인 함수가 궁금하면 여기를 클릭해주세요.



인라인 함수는 함수의 몸체 부분이 대체되어 사용하는 것을 말합니다.


즉, SpeedUp함수와 ShowSpeed함수가 몸체로 대체되어야 하는데 그 몸체가 다른 소스파일에 있어서 에러메시지가 발생하게 됩니다.


따라서, 에러메시지를 나타나지 않게 하려면 inline 함수를 Car.h에 있는 클래스의 선언부와 함께 작성해주어야 합니다.





'Programming > C++' 카테고리의 다른 글

클래스와 객체  (0) 2015.06.01
new & delete  (0) 2015.06.01
참조자와 함수  (0) 2015.04.06
참조자 Reference  (0) 2015.03.20
자료형 bool  (0) 2015.03.19