250x250
Notice
Recent Posts
«   2024/07   »
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 31
관리 메뉴

일상 코딩

[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