250x250
Notice
Recent Posts
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
관리 메뉴

일상 코딩

[C++/8.8] 클래스 코드의 헤더파일 및 바디파일 분할. 본문

C++/따배C++ 08강 객체지향 기초

[C++/8.8] 클래스 코드의 헤더파일 및 바디파일 분할.

polarcompass 2021. 10. 22. 04:11
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