본문 바로가기

C++9

[C++] 업 캐스팅(up casting) & 다운 캐스팅(down casting) 포인터는 왜쓰고 업&다운 캐스팅은 뭘까요? 설명에 앞서 저는 업캐스팅을 이해하려면 포인터부터 알아야 한다고 생각합니다. 해서 포인터부터 설명을 드리겠습니다. 학창시절 포인터는 C에서 배웠지만 그냥 해당 타입의 메모리 주소를 저장 및 참조(접근)하는 그런건가 보다~ 하고 넘겼었고 업&다운 캐스팅은 왜 쓰는지 도무지 감이 안잡혔었습니다. 그래서 서적이나 블로그 등 많이 찾아봤지만 이 질문에 대한 명확한 답을 찾기가 어려웠습니다. 많은 분들이 저와 같은 고민을 했으리라 생각합 아니 하고 싶습니다^^.. 때문에 제가 아는 선에서 여러분에게 최대한의 이해를 돕고자 포스팅을 하게 되었습니다. 그리고 "C++ 클래스에 대한 이해 - 다형성"를 읽는데 도움이 되실겁니다. 서두가 길었습니다. 시작하시죠 먼저 포인터란 주.. 2020. 7. 6.
[C++] 객체지향과 클래스에 대해 - 다형성(Polymorphism) 이전 포스팅의 상속(Inheritance)에서 모바일 핸드폰을 예시로 들었는데요..! 파생클래스가 기본클래스의 기능을 포함하는 형태로 확장되는 것이라고 말씀드렸습니다. 동시에 파생클래스는 기본클래스 멤버를 자기자신으로 가져오는 것이 아니라 각각의 영역을 지키고 있다고 했습니다. 그럼 파생클래스 객체가 기본클래스가 가지고 있는 멤버함수를 커스터마이징을 하고 싶다면 어떻게 할까요?가령 전화기능을 사용하기 위해서 스마트폰 이전 세대의 모바일핸드폰은 물리적인 자판을 통해 번호를 입력합니다. 그런데 스마트폰은 디스플레이에 나타나는 가상의 키보드를 사용하구요. 입력 방식에 대한 차이가 드러납니다. 여기서 키포인트번호를 입력하는 함수가 기본클래스에 정의되어 있다고 가정 합시다. 그 기본클래스를 상속 받은 스마트폰이라.. 2020. 6. 26.
[C++] 객체지향과 클래스에 대해 - 상속(Inheritance) 앞선 포스팅의 접근지정자 public, private을 캡슐화(Encapsulation)과 함께 설명했는데요. 오늘 포스팅은 나머지 하나. protected에 대해 설명하겠습니다. 근데 protected를 이해하기 전에 상속(Inheritance)이란 개념을 반드시 알고 넘어가야 합니다. 상속은 객체지향 특성 4가지 중 하나로, 나머지 특성이면서 가히 C++의 꽃이라 할 수 있는 다형성(Polymorphism) 실현에 필수적인 요소이기 때문입니다. 뿐만 아니라 클래스 간의 계층적 분류를 통해 관리 및 재사용을 용이하게 할 수 있는데 이는 소프트웨어의 생산성을 향상시킬 수 있습니다. 상속이란 클래스를 정의할 때 어떤 클래스를 확장하여 파생하는 걸 말합니다. 그러면 기본클래스(부모클래스), 파생클래스(자식클.. 2020. 6. 20.
[C++] 객체지향과 클래스에 대해 - 캡슐화(Encapsulation) 클래스의 접근지정자 그리고 캡슐화(encapsulation) 이전 포스팅의 소스코드입니다. //MobilePhone.h class CMobilePhone { public: void Call();//통화기능 제공 void Display();//디스플레이 제공 private: bool m_bMic;//마이크 상태 bool m_bSpeaker;//스피커 상태 bool m_bDisplay;//디스플레이 상태 }; //MobilePhone.cpp void CMobilePhone::Call() { m_bMic = true; m_bSpeaker = true; std::cout 2020. 6. 16.