관리 메뉴

프로그램 소스

메서드의 다형성 [디딤돌 C++] 본문

C++/디딤돌 C++

메서드의 다형성 [디딤돌 C++]

Only 프로그램 소스 언제나휴일 2016.04.14 14:53

메서드의 다형성 [디딤돌 C++]

언제나 휴일 티스토리


메서드의 다형성 [디딤돌 C++]


메서드의 다형성 [디딤돌 C++]



Program.cpp



//메서드의 다형성

//Program.cpp

#include <iostream>

#include <string>

using namespace std;

class Musician

{

    string name;

public:

    Musician(string name)

    {

        this->name = name;

    }

    virtual void Play()

    {

        cout<<name<<" 연주하다."<<endl;

    }

    void Introduce()

    {

        cout<<name<<" 음악가: 안녕"<<endl;

    }   

    string GetName()const

    {

        return name;

    }

};

 

class Pianist:public Musician

{

public:

    Pianist(string name):Musician(name)

    {

    }

    virtual void Play()

    {

        cout<<GetName()<<" 연주하다."<<endl;

        cout<<"딩동댕 ♩♪♬"<<endl;

    }

};

class Drummer:public Musician

{

public:

    Drummer(string name):Musician(name)

    {

    }

    virtual void Play()

    {

        cout<<GetName()<<" 연주하다."<<endl;

        cout<<"두두둥~~~"<<endl;

    }

};

 

void StartConcert(Musician *musician);

void StartConcert(Musician &musician);

 

int main()

{

    Pianist *pianist1 = new Pianist("피아노맨1");

    Drummer *drummer1 = new Drummer("두둥맨1");

    StartConcert(pianist1);

    StartConcert(drummer1);

    delete pianist1;

    delete drummer1;

 

    Pianist pianist2("피아노맨2");

    Drummer drummer2("두둥맨2");

    StartConcert(pianist2);

    StartConcert(drummer2);

}

void StartConcert(Musician *musician)

{

    musician->Introduce();

    musician->Play();

}

void StartConcert(Musician &musician)

{

    musician.Introduce();

    musician.Play();

}

 

* 디딤돌 C++  33. 메서드의 다형성에서

디딤돌 C++ 소개 바로가기

0 Comments
댓글쓰기 폼