C++/상속과 다형성
양수만 삽입하는 stack 구현 (Reuse mechanism: composition)
(15004) Stack class의 instance를 내부 변수(포인터)로 선언하여 데이터가 양수인 경우만 삽입하는 PositiveStack 을 만든다. #include using namespace std; class Stack{ public: class node{ public: int data; node * next; node(int x, node *nxt):data(x), next(nxt){} }; Stack(); void insert(int); int pop(); void show(); protected: node *first; }; Stack::Stack(){ first = 0; } void Stack::insert(int x){ node * temp; temp = new node(x, firs..
양수만 삽입하는 stack 구현 (Reuse mechanism: inheritance)
(15002) Stack class에서 상속을 받아 데이터가 0 이상인 것만 삽입하고 음수인 경우는 무시하는 PositiveStack class를 만든다. 예를 들어 4 -3 2 1 을 입력한다면 4 2 1 만 입력되어야 한다. #include using namespace std; class Stack{ public: class node{ public: int data; node * next; node(int x, node *nxt):data(x), next(nxt){} }; Stack(); void insert(int); int pop(); void show(); protected: node *first; }; Stack::Stack(){ first = 0; } void Stack::insert(int..
상속시 상위 메소드의 오버라이드
(14003,14004) Dog의 하위 클래스인 NoisyDog 클래스를 정의하고 Bark 메소드를 새로 정의한다. NoisyDog는 일반 개보다 시끄럽게 짖는 개이다. 새로운 bark 메소드는 "멍멍! 멍멍! 멍멍!"을 출력한다. #include using namespace std; class Dog{ public: Dog(); void Bark(); }; class NoisyDog: public Dog{ public: NoisyDog(); void Bark(); }; Dog::Dog(){ std::cout