[c++]

[c++] 업케스팅, 다운캐스팅

롤링페이퍼 2023. 11. 16. 14:43

알기 쉽게 예시해서 말하자

 

동물( animal ) 이 있다.

animal 에는 개, 새, 고양이, 물고기 등 등 다양한 종족이 있다.

여기서 부모는 animal(동물)이라는 것 이고

개, 새, 고양이, 물고기 등등 이런것들은 animal (동물)의 자식이라고 표현한다.

 

이제 더 깊게 말해보자

동물들은 공통된 행동들이 있다.

먹고, 싸고, 자기 등등 이 대표적인 공통된 행동이다.

 

코드로 변한 해보면

auto animal[] = ("개, 새, 고양이,...");

 

이제 개, 새, 고양이 등등 얘네들의 특정 행동들을 말해보자

개는 복종을 잘따른다.

고양이는 그루밍을 한다.

새는 하늘을 날수있다.

 

이것도 코드로 변환 해보면

auto dog = (" obedience "); //복종
auto cat = (" grooming "); // 그루밍
auto brid = ("fly");  // 날다

일 것이다.

 

자 이제 내가 무언가를 만들것이다.

 

class 동물
{
 //...
}

class 사람 : public 동물
{
 //...
}

void main
{
 사람 홍길동 ;
동물 어떤동물 = 홍길동;
}

 

 

 

 

 

 

자식 class에 들어있는 자료형 변수를

부모 class에 들어있는 자료형 변수에 자식 자료형 변수를 담는 것.

 

https://velog.io/@cedongne/OOP-%EC%97%85-%EC%BA%90%EC%8A%A4%ED%8C%85-%EB%8B%A4%EC%9A%B4-%EC%BA%90%EC%8A%A4%ED%8C%85