본문 바로가기

언어/C++

가상함수 로 단위 변환기 !

#include <iostream>
#include <string>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

class Converter{
	protected:
		double ratio;
		virtual double convert(double src)=0;
		virtual string getSourceString()=0;
		virtual string getDestString()=0;
	
	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 {
	
	public:
		KmToMile(int n) : Converter(n){}

		double convert(double src){
			double re= src/1.609344;
			return re;
		}
		string getSourceString(){
			return "Km";
		}
	
		string getDestString(){
			return "Mile";
		}
};

int main(int argc, char** argv) {
	KmToMile toMile(1.609344);
	toMile.run();
	return 0;
}