728x90
#include <iostream>
#include <string>
using namespace std;
class Converter {
protected:
double ratio;
virtual double convert(double srt) = 0; // src를 다른 단위로 변환한다.
virtual string getSourceString() = 0; // src 단위 명칭
virtual string getDestString() = 0; // dest 단위 명칭
public:
Converter(double ratio) { this->ratio = ratio; }
void run() {
double src;
cout << getSourceString() << "을 " << getDestString() << "로 바꿉니다. ";
cout << getSourceString() << "을 입력하세요>> ";
cin >> src;
cout << "변한 결과 : " << convert(src) << getDestString() << endl;
}
};
class WonToDollar : public Converter {
string src, dest;
protected:
string getSourceString() { return src; }
string getDestString() { return dest; }
double convert(double srt) { return srt / Converter::ratio; }
public:
WonToDollar(double ratio) : Converter(ratio) {
src = "원"; dest = "달러";
}
};
int main() {
cout << "2018305065 전유정" << endl << endl;
WonToDollar wd(1010); // 1 달러에 1010원
wd.run();
}
반응형
'전공 공부 > C++' 카테고리의 다른 글
LoopAdder 클래스 상속 (0) | 2021.06.16 |
---|---|
클래스 KmToMile (0) | 2021.06.16 |
클래스 Shape 가상 함수 (0) | 2021.06.16 |
클래스 BaseArray (상속) (0) | 2021.06.16 |
클래스 Calculator (다중 상속) (0) | 2021.06.07 |