본문 바로가기

분류 전체보기16

[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.
[C++] 객체지향과 클래스에 대해 - 추상화(Abstraction) 포스팅에 앞서 네이밍에 대해 알려드립니다. 클래스는 C(class)를 붙히고 멤버변수m_[타입][이름]으로 선언 합니다. m는 member의 약자입니다. [객체지향과 클래스에 대해 시리즈]는 객체지향의 특성을 단순히 외우는 것이 아닌 이해를 바탕으로 기본을 다져 더욱 생산성있는 코드를 작성해보자 라는 취지에서 포스팅 하게 되었습니다. C++을 시작하시는 분들에게 도움이 됐으면 좋겠습니다. 차근차근 재밌게 읽어주시면 감사하겠습니다. 클래스란 어떠한 행위(동작)나 특징(성질)을 가지는 틀 입니다. 지금 당장 떠오르는 사람이나 사물이 있나요? 마침 제 옆에 핸드폰이 있네요. 아이폰, 갤럭시, V시리즈 등등 수 많은 핸드폰의 공통된 기능이 무엇일까요? 핸드폰이 가지는 공통적인 특징 1. 마이크, 스피커를 가지고.. 2020. 6. 15.