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 KmToMile : public Converter {
string src, dest;
protected:
string getSourceString() { return src; }
string getDestString() { return dest; }
double convert(double srt) { return srt / Converter::ratio; }
public:
KmToMile(double ratio) : Converter(ratio) {
src = "Km"; dest = "Mile";
}
};
int main() {
cout << "2018305065 전유정" << endl << endl;
KmToMile toMile(1.609344);
toMile.run();
}
반응형
'전공 공부 > C++' 카테고리의 다른 글
클래스 Oval, Rect, Triangular (0) | 2021.06.16 |
---|---|
LoopAdder 클래스 상속 (0) | 2021.06.16 |
클래스 WonToDollar (0) | 2021.06.16 |
클래스 Shape 가상 함수 (0) | 2021.06.16 |
클래스 BaseArray (상속) (0) | 2021.06.16 |