[명품 C++] Open

과제는 주요 함수를 나타내고 클래스 Exp에 맞는 실수의 지수식을 작성하는 것이었습니다.

첫 번째 경험치

#ifndef EXP_H
#define EXP_H

class Exp {
private:
	int base, exponent;
public:
	Exp();
	Exp(int ba, int e);
	Exp(int num);

	int getValue();
	int getBase();
	int getExp();
	bool equals(Exp b);
};

#endif

2.Exp.cpp

#include "Exp.h"
#include <cmath>

Exp::Exp(): Exp(1) { }

Exp::Exp(int ba, int e) {
	base = ba;
	exponent = e;
}

Exp::Exp(int num) {
	base = num;
	exponent = 1;
}

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

int Exp::getBase() {
	return base;
}

int Exp::getExp() {
	return exponent;
}

bool Exp::equals(Exp b) {
	if (getValue() == b.getValue())
		return true;
	else
		return false;	
}

클래스 내에서 함수를 정의할 때 다음과 같이 호출해야 합니다.

(클래스 이름)::(함수)!

헤더에 정의된 변수가 내가 안하면서 왜 안 나오는지 한참을 고민했다.

3. 메인.cpp

 #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;
}