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