1. 문제

 

실수의 지수 표현을 클래스 Exp로 작성하라. Exp를 이용하는 main() 함수와 실행 결과는 다음과 같다. 클래스 Exp를 Exp.h 헤더 파일과 Exp.cpp 파일로 분리하여 작성하라.

 

 

2. 결과

 

 

 

3. 코드

 

// main 파일

#include <iostream>
using namespace std;

#include "Exp.h"

int main() {
	Exp a(3, 2);
	Exp b(9);
	Exp c;

	cout << a.getValue() << ' ' << b.getValue() << ' ' << c.getValue() << endl;
	cout << "a의 베이스 " << a.getBase() << ',' << "지수 " << a.getExp() << endl;

	if( a.equals(b) )
		cout << "same" << endl;
	else 
		cout << "not same" << endl;
}
//  Exp.cpp 파일

#include "Exp.h"

Exp::Exp() {  base = 1; jisu = 1; } 
	
Exp::Exp(int a) { base = a; jisu = 1; }

Exp::Exp(int a, int b) { base = a; jisu = b; }

int Exp::getValue() { 
	int result = base;
	for( int i=1; i<jisu; i++ )
		result *= base;
	return result;
}

int Exp::getBase() {
	return base;
}
int Exp::getExp() {
	return jisu;
}
bool Exp::equals( Exp b) {
	if( getValue() == b.getValue() ) return true;
	else return false;
}
// Exp.h 파일

class Exp {
	int base;
	int jisu;
public :
	Exp(); 
	Exp(int a);
	Exp(int a, int b);
	int getValue();
	int getBase();
	int getExp();
	bool equals( Exp b);
};

 

 

4. 설명

 

클래스 함수를 선언부와 구현부를 각 파일에 알맞게 나눠서 작성할 수 있는지를 확인하는 문제입니다.

 

 

선언부를 Exp.h 헤더 파일에다가 구현부를 Exp.cpp 파일에다가 구현합니다. 
 
main파일에는 main()함수만 있어야 합니다.

 

클래스 멤버함수들의 이름은 힌트의 있는 이름을 사용하였습니다.

+ Recent posts