-
명품 C++ 3장 Open ChallengeC++ 2018. 10. 29. 00:09
지수 표현 클래스 만들기
실수의 지수 표현을 클래스 Exp로 작성하라. Exp를 이용하는 main() 함수와 실행 결과는 다음과 같다. 클래스 Exp를 Exp.h 헤더 파일과 Exp.cpp 파일로 분리하여 작성하라.
소스코드
Exp.h
#ifndef EXP_H#define EXP_Hclass Exp {int base, exp;public:Exp();Exp(int b);Exp(int b, int e);int getValue(); // 지수를 정수로 계산하여 리턴int getBase(); // 베이스 값 리턴int getExp(); // 지수 값 리턴bool equals(Exp b); // 이 객체와 객체 b의 값이 같은지 판별하여 리턴};#endifExp.cpp
#include <iostream>using namespace std;#include "Exp.h"Exp::Exp() {base = 1; exp = 1;}Exp::Exp(int b) {base = b; exp = 1;}Exp::Exp(int b, int e) {base = b; exp = e;}int Exp::getValue() {int n = 1;for (int i = 0; i < exp; ++i)n *= base;return n;}int Exp::getBase() {return base;}int Exp::getExp() {return exp;}bool Exp::equals(Exp b) {if (this->getValue() == b.getValue())return true;elsereturn false;}main.cpp
#include <iostream>using namespace std;#include "Exp.h"int main() {Exp a(3, 2); // 3의 제곱은 9 베이스 3 지수 2Exp 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;elsecout << "not same" << endl;}실행결과
Exp.h 파일에서 #ifndef #define #endif 는 조건 컴파일 문으로 헤더파일이 여러번 include 해도 문제 없게 하기 위함입니다.
'C++' 카테고리의 다른 글
명품 C++ 4장 2번 (0) 2018.10.29 명품 C++ 4장 1번 (0) 2018.10.29 명품 C++ 3장 12번 (0) 2018.10.28 명품 C++ 3장 11번 (0) 2018.10.28 명품 C++ 3장 10번 (0) 2018.10.28