9.1> Converter 클래스를 상속받아 달러를 원화로 환산하는 WonToDollar 클래스를 작성하라. Main() 함수와 실행 결과는 다음과 같다.
<코드>
#include <iostream> #include <string> using namespace std;
class Converter { protected: double ratio; virtual double convert(double src) = 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; //src 받아서 컨버팅 } }; class WonToDollar : public Converter { //컨버터 클래스를 상속받은 원투달라 클래스 protected: string from; //바뀌어지는 것의 이름 string to; //바뀐 결과의 이름 public: WonToDollar(double ratio, string from, string to); virtual double convert(double src); virtual string getSourceString(); virtual string getDestString(); }; WonToDollar::WonToDollar(double ratio, string from = "원", string to = "달러") : Converter(ratio) { this->from = from; this->to = to; this->ratio = ratio; //생성자 from,to,ratio 초기화 from과 to의 디폴트는 "원" "달러" } double WonToDollar::convert(double src) { return (src/ratio); //src/ratio를 리턴, 컨버트 함수 오버라이딩 } string WonToDollar::getSourceString() { return from; } //겟소스스트링 함수 오버라이딩 string WonToDollar::getDestString() { return to; } //겟dest스트링 함수 오버라이딩
int main(void) { WonToDollar wd(1010); //비율을 1010으로 해서 객체 생성 wd.run(); //컨버팅 실행 return 0; }
|
<결과창>
|
'컴퓨터 & 프로그래밍 & 전자공학 > C++' 카테고리의 다른 글
ForLoopAdder 클래스 (0) | 2017.12.31 |
---|---|
KmToMile class (0) | 2017.12.31 |
Printer Class (0) | 2017.12.31 |
ROM RAM class (0) | 2017.12.31 |
MyStack Class (0) | 2017.12.31 |