본문 바로가기
C++/c++수업

헤더파일, cpp파일 분리. p140 Adder, calculator

by sj0020 2020. 10. 19.
#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 객체 생성
	calc.run(); // 계산기 시작
}

 

ClassAddH.h

#pragma once

class Adder { // 덧셈 모듈 클래스
private:
	int op1, op2;
public:
	Adder(int a, int b);
	int process();
};

 

ClassCalH.h

#pragma once

class Calculator { // 계산기 클래스
public:
	void run();
};

 

ClassAdd.cpp

#include <iostream> // 생략가능
#include "classAddH.h"
using namespace std; //생략가능

Adder::Adder(int a, int b) {
	op1 = a; op2 = b;
}

int Adder::process() {
	return op1 + op2;
}

 

Classcal.cpp

#include <iostream>
#include "classCalH.h"
#include "classAddH.h"
using namespace std;

void Calculator::run() {
	cout << "두 개의 수를 입력하세요>>";
	int a, b;
	cin >> a >> b; // 정수 두 개 입력
	Adder adder(a, b); // 덧셈기 생성
	cout << adder.process(); // 덧셈 계산
}

 

ClassMain.cpp

#include <iostream> //생략가능
using namespace std; //생략가능

#include "classAddH.h" // 생략가능
#include "classCalH.h"

int main() {
	Calculator calc; // calc 객체 생성
	calc.run(); // 계산기 시작
}

 

클래스이름의 첫글자는 대문자. 파일이름도 첫글자는 대문자가 관례이다. 소문자로 해도 동작하는데에는 이상 없음.