c++ 클래스 코드 와 헤더파일
728x90
#include <iostream> class Calc { private: int m_value; public: Calc(int init_value) : m_value(init_value) { } Calc& add(int value) { m_value += value; return *this; } Calc& sub(int value) { m_value -= value; return *this; } Calc& mult(int value) { m_value *= value; return *this; } void print() { using namespace std; cout << m_value << endl; } }; int main() { Calc cal(10); cal.add(2).sub(7).mult(4).print(); return 0; }
cpp 파일안에서 main 함수와 class 함수를 같이 선언하게 되면 내용이 많을 경우 굉장히 복잡해 질수가 있습니다.
그래서 헤더파일 을 만들어 class 함수를 분리 하려고 합니다.
헤더파일을 생성 합니다. 보통 헤더파일의 이름은 class 명과 동일하게 만들지만 꼭 똑같지 않아도 상관은 없습니다.
#pragma once #include <iostream> class Calc { private: int m_value; public: Calc(int init_value) : m_value(init_value) { } Calc& add(int value) { m_value += value; return *this; } Calc& sub(int value) { m_value -= value; return *this; } Calc& mult(int value) { m_value *= value; return *this; } void print() { using namespace std; cout << m_value << endl; } };
- #pragma once 헤더가드 를 선언해서 중복해서 정의하는 것을 방지합니다.
- 헤더파일 에서는 using namesapce 를 남발 하는것은 그렇게 좋지 않습니다.
- using namespace 를 사용하게 되면 include 하는 모든 파일이 영향을 받게 됩니다.
- 헤더 파일에서는 class 의 내용을 전부 넣어도 되지만 헤더파일이 무거워집니다.
- 헤더파일에 선언만 남겨두고 Calc.cpp 파일을 만들어 몸체를 이동합니다.
- 함수 명을 클릭하고 Ctrl + . 을 누르면 몸체가 이동합니다.
#include "Calc.h" Calc::Calc(int init_value): m_value(init_value) { } Calc& Calc::add(int value) { m_value += value; return *this; } Calc& Calc::sub(int value) { m_value -= value; return *this; } Calc& Calc::mult(int value) { m_value *= value; return *this; } void Calc::print() { using namespace std; cout << m_value << endl; }
Calc.cpp 에 class 몸체를 옮긴 코드
#pragma once #include <iostream> class Calc { private: int m_value; public: Calc(int init_value); Calc& add(int value); Calc& sub(int value); Calc& mult(int value); void print(); };
한결 가벼워진 헤더파일
#include <iostream> #include "Calc.h" int main() { Calc cal(10); cal.add(2).sub(7).mult(4).print(); return 0; }
사용자가 정의한 헤더파일을 호출할땐 " " 를 사용해서 호출합니다.
728x90
'C++ > c++ - 따라하며 배우는 c++' 카테고리의 다른 글
c++ 친구 함수와 클래스 friend (0) | 2020.10.30 |
---|---|
c++ static member function (정적 멤버 함수) (0) | 2020.10.29 |
c++ static member 변수 (0) | 2020.10.29 |
c++ class 와 const (0) | 2020.10.28 |
c++ this포인터와 연쇄 호출 (0) | 2020.10.28 |
댓글
이 글 공유하기
다른 글
-
c++ static member function (정적 멤버 함수)
c++ static member function (정적 멤버 함수)
2020.10.29 -
c++ static member 변수
c++ static member 변수
2020.10.29 -
c++ class 와 const
c++ class 와 const
2020.10.28 -
c++ this포인터와 연쇄 호출
c++ this포인터와 연쇄 호출
2020.10.28
댓글을 사용할 수 없습니다.