1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | #include<iostream> using namespace std; class Calc { protected: int a, b; char c; public: Calc(int new_a, int new_b,char new_c); void Prn(); }; void Calc::Prn() { cout << "a : "<< a << "\tb : " << b<<"\tc : " << c << endl; } Calc::Calc(int new_a, int new_b, char new_c) : a(new_a), b(new_b), c(new_c) { } class Add : public Calc { protected: int c; public: Add(int new_a, int new_b); void Sum(); void Prn(); }; void Add::Sum() { c = a + b; } Add::Add(int new_a, int new_b) : Calc(new_a, new_b,'+') ,c(0) { } void Add::Prn() { cout << a << " + " << b << " = " << c << endl; } class Sub : public Calc { protected: int c; public: Sub(int new_a, int new_b); void Sum(); void Prn(); }; void Sub::Sum() { c = a - b; } Sub::Sub(int new_a, int new_b) : Calc(new_a, new_b, '-'), c(0) { } void Sub::Prn() { cout << a << " - " << b << " = " << c << endl; } class Mul : public Calc { protected: int c; public: Mul(int new_a, int new_b); void Sum(); void Prn(); }; void Mul::Sum() { c = a * b; } Mul::Mul(int new_a, int new_b) : Calc(new_a, new_b, '*'), c(0) { } void Mul::Prn() { cout << a << " * " << b << " = " << c << endl; } class Div : public Calc { protected: double c; public: Div(int new_a, int new_b); void Sum(); void Prn(); }; void Div::Sum() { c = (double)a / b; } Div::Div(int new_a, int new_b) : Calc(new_a, new_b, '/'), c(0) { } void Div::Prn() { cout << a << " / " << b << " = " << c << endl; } void main() { Calc x(3, 5, '-'); x.Prn(); Add y(3, 5); y.Sum(); y.Prn(); Sub z(3, 5); z.Sum(); z.Prn(); Mul a(3, 5); a.Sum(); a.Prn(); Div b(3, 5); b.Sum(); b.Prn(); } | cs |
[출처] (C++) 상속을 이용한 간단한 계산 클래스 구현|작성자 길가다주은노트북
'프로그래밍 > C++' 카테고리의 다른 글
(C++) 클래스와 객체 (0) | 2016.07.09 |
---|---|
(C++) Simple 한/영사전 예제 (0) | 2016.07.09 |
(C++) 상속성 (0) | 2016.07.09 |
(C++) 연산자 오버로딩 (0) | 2016.07.09 |
(C++) 클래스 객체 (0) | 2016.07.09 |