Private 으로 상속받으면 상속받은 것들은 외부에서 사용할 수 없다.
class Derived : private Base {
public:
void g(void);
};
void Derived::g(void)
{
cout << "in function 'Derived::g()'\n";
}
int main() {
Base myB;
Derived myD;
myB.f();
myD.g();
myD.f(); // 오류 발생
}
만약 public private을 생략하면 디폴트가 private이다.
Overloading vs. Overriding
virtual 쓰면 Overriding 안쓰면 Overloading.
virtual은 부모의 함수말고 자식함수를 쓴다는 선언.
Derived "is-a" Base
반대는 불가능.
다형성(Polymorphism) 조건
1. 자식함수에서 override가 일어나야함
4. 간접적으로 부모함수가 불려져야함
'c++' 카테고리의 다른 글
| Pointers to Object (0) | 2025.04.29 |
|---|---|
| 캡슐화 (0) | 2025.04.22 |
| 포인터변수에 숫자를 더하면 (0) | 2025.04.22 |