과제는 주요 함수를 나타내고 클래스 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;
}