● public 상속


: 그냥 그대로 상속된다



● protected 상속


: public 멤버들은 protected 접근 지정으로 변경되어 파생 클래스에 상속 확장된다.



● private 상속


: protected, public 멤버들은 모두 private 접근 지정으로 변경되어 파생 클래스에 상속 확장된다.




● 다중 상속


: 예제만 보면 이해 될 듯( , 로 여러개의 부모 클래스 표시 )



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
#include <iostream>
using namespace std;
 
class Adder {
protected:
    int add(int a, int b) { return a+b; }
};
 
class Subtractor {
protected:
    int minus(int a, int b)  { return a-b; }
};
 
class Calculator : public Adder, public Subtractor { // 다중 상속
public:
    int calc(char op, int a, int b);
};
 
int Calculator::calc(char op, int a, int b) {
    int res=0;
    switch(op) {
        case '+' : res = add(a, b); break;
        case '-' : res = minus(a, b); break;
    }
    return res;
}
 
int main() {
    Calculator handCalculator;
    cout << "2 + 4 = " << handCalculator.calc('+'24<< endl;
    cout << "100 - 8 = " << handCalculator.calc('-'1008<< endl;
}
cs