C++

    다중상속 기초

    (18010) #include using namespace std; class Dog{ public: void Bark(){ cout

    양수만 삽입하는 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

    클래스 상호참조 (분대와 분대원 예제)

    #include #include "squad.h" #include "soldier.h" using namespace std; int main(){ Squad *b = new Squad ("번개 분대"); Soldier *s1, *s2, *s3; s1 = new Soldier("일병", "홍길동"); s2 = new Soldier("이병", "김길동"); s3 = new Soldier("병장", "박길동"); b->addSoldier(s1); b->addSoldier(s2); b->addSoldier(s3); b->stat(); s1->speak(); s2->speak(); b->setName("천둥 분대");//rename s1->speak(); return 0; } #include #include "s..

    클래스 상호참조 (애견학교 예제)

    #include #include "dog.h" #include "dogschool.h" int main(){ /* Dog *d1, *d2; d1 = new Dog("철수"); d2 = new Dog("영이"); d1->speak(); d2->speak(); DogSchool * ds = new DogSchool("명지 애견학교"); ds->RegisterDog(d1); // d1을 애견학교에 등록시킨다. ds->RegisterDog(d2); // d2을 애견학교에 등록시킨다. ds->ShowDogs(); */ Dog *d1, *d2; d1 = new Dog("철수"); d2 = new Dog("영이"); DogSchool * ds = new DogSchool("명지 애견학교"); ds->RegisterD..