일상 코딩
[C++/8.8] 클래스 코드의 헤더파일 및 바디파일 분할. 본문
728x90
1. main.cpp 파일
#include "Calc.h"
int main()
{
Calc cal{10};
cal.add(10).sub(1).mult(2).print();
Calc(10).add(10).sub(1).mult(2).print();
return 0;
}
2. "Calc.h" header file
선언부만 남겨놓는다.
#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 div(float value) { m_value /= value; }
void print();
};
3. 함수 및 생성자 body file
#include "Calc.h"
// header file에선 원본 파일내 전체 코드에 영향을 줄 수 있기에
// namespace를 안썼지만 class의 body File인 cpp 파일에선
// 사용해도 된다.
using namespace std;
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 div(float value) { m_value /= value; }
void Calc::print()
{
cout << m_value << endl;
}
class 작성시 main.cpp file에 작성하는 것이 아닌
header File에 작성한 후 body file만 cpp파일에 분리해서 저장해 놓는다.
728x90
'C++ > 따배C++ 08강 객체지향 기초' 카테고리의 다른 글
[C++/8.10] 클래스와 static 변수 variable (0) | 2021.10.23 |
---|---|
[C++/8.9] 클래스와 const, reference(&) (0) | 2021.10.23 |
[C++/8.7] this 포인터와 연쇄호출, pointer and chaining member function (0) | 2021.10.22 |
[C++/8.6] CLASS 소멸자, destructor (0) | 2021.10.21 |
[C++/8.5] CLASS 위임 생성자, 초기화 함수 이용 (0) | 2021.10.21 |