ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 명품 C++ 3장 Open Challenge
    C++ 2018. 10. 29. 00:09

    지수 표현 클래스 만들기


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


    소스코드


    Exp.h


    #ifndef EXP_H
    #define EXP_H
    class 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의 값이 같은지 판별하여 리턴
    };
    #endif

    Exp.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;
        else
            return false;
    }


    main.cpp


    #include <iostream>
    using namespace std;
    #include "Exp.h"
    int main() {
        Exp a(3, 2); // 3의 제곱은 9 베이스 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.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

    댓글

© 2018 TISTORY. All rights reserved.