#include <iostream>
using namespace std;
class Adder {
int op1, op2;
public:
Adder(int a, int b);
int process();
};
Adder::Adder(int a, int b) {
op1 = a; op2 = b;
}
int Adder::process() {
return op1 + op2;
}
class Calculator {
public:
void run();
};
void Calculator::run() {
cout << "두개의 수를 입력하세요>>";
int a, b;
cin >> a >> b;
Adder adder(a, b);
cout << adder.process();
}
int main() {
Calculator calc;
calc.run();
}
두 개의 정수를 입력받아 더하는 프로그램이다. 이렇게 하나의 소스파일에 입력해도 되지만, 헤더 파일과 cpp 파일을 분류하여 작성할 수 있다.
클래스를 구현할때
선언부: 헤더파일에 작성 (@@@.h)
구현부: cpp 파일에 작성 (@@@.cpp)
위의 코드는 이렇게 분리하여 작성할 수 있다.
Adder.cpp
#include <iostream>
using namespace std;
#include "Adder.h"
Adder::Adder(int a, int b) {
op1 = a; op2 = b;
}
int Adder::process() {
return op1 + op2;
}
Calculator.cpp
#include <iostream>
using namespace std;
#include "Calculator.h"
#include "Adder.h"
void Calculator::run() {
cout << "두개의 수를 입력하세요>>";
int a, b;
cin >> a >> b;
Adder adder(a, b);
cout << adder.process();
}
main.cpp
#include <iostream>
using namespace std;
#include "Calculator.h"
int main() {
Calculator calc;
calc.run();
}
Adder.h
#ifndef ADDER_H
#define ADDER_H
class Adder {
int op1, op2;
public:
Adder(int a, int b);
int process();
};
#endif
Claculator.h
#ifndef CALCULATOR
#define CALCULATOR
class Calculator {
public:
void run();
};
#endif
조건 컴파일문
헤더 파일의 경우 #ifndef #define #endif를 사용하였다. 이는 조건 컴파일 문이다.
컴파일 할 때 같은 헤더 파일이 여러번 호출되면 오류가 나기 때문에, #ifndef #define #endif 를 사용하여 이를 방지한다.
'c++' 카테고리의 다른 글
string 클래스 (0) | 2020.04.19 |
---|---|
C++ 동적 메모리 할당 (0) | 2020.04.19 |
명품 C++ 프로그래밍 Open Challenge 3장 (0) | 2020.04.18 |
class 의 생성자 (0) | 2020.04.17 |
class 구현 (0) | 2020.04.17 |