1. 문제

 

1. Converter 클래스를 상속받아 달러를 원화로 환산하는 WonToDollar 클래스를 작성하라. main() 함수와 실행 결과는 다음과 같다.

 

 

2. Converter 클래스를 상속받아 km를 mile(마일)로 변환하는 KmToMile 클래스를 작성하라. main() 함수와 실행 결과는 다음과 같다.

 

 

 

2. 결과

1.

 

2.

 

 

3. 코드

1.

#include <iostream>
#include <string>
using namespace std;

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 WonToDollar : public Converter {
public :
	WonToDollar(int n) : Converter(n) { };
	double convert(double src) { 
		double re = src / 1010;
		return re;
	}
	string getSourceString() {
		return "원";
	}
	string getDestString() {
		return "달러";
	}
};

int main() {
	WonToDollar wd(1010);
	wd.run();
}

2.

#include <iostream>
#include <string>
using namespace std;

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() {
	KmToMile toMile(1.609344);
	toMile.run();
}

 

4. 설명

 

 

Converter의 선언된 순수 가상함수인 convert, getSourceString, getDestString 함수를 자식 클래스에서 각각의 맞게 구현해 줍니다.

 

※ 주의하실 점은 자식 클래스에서 이들 중 구현을 하지 않은게 있다면 오류가 발생합니다.

 

+ Recent posts