#include<iostream>
#include<string>
using namespace std;
class Message
{
public:
Message(int iSendTime, string strSendName) {
this->iSendTime = iSendTime;
this->strSendName = strSendName;
}
int getISendTime() const { return iSendTime; }
string getStrSendName() const { return strSendName; }
private:
int iSendTime;
string strSendName;
};
class Image
{
public:
operator string()
{
return "사진";
}
};
class TextMessage : public Message
{
public:
TextMessage(int iSendTime, string strSendName, string strText)
: Message(iSendTime, strSendName)
{
this->strText = strText;
}
string getStrText() const { return strText; }
private:
string strText;
};
class ImageMessage : public Message
{
public:
ImageMessage(int iSendTime, string strSendName, Image* pImage)
: Message(iSendTime, strSendName)
{
this->pImage = pImage;
}
Image* getPImage() const { return pImage; }
private:
Image* pImage;
};
int main()
{
Image* pImage = new Image();
TextMessage* pTextMessage = new TextMessage(10, "두들", "안녕");
ImageMessage* pImageMessage = new ImageMessage(20, "두들", pImage);
cout << "보낸 시간 : " << pTextMessage->getISendTime() << endl;
cout << "보낸 사람 : " << pTextMessage->getStrSendName() << endl;
cout << "편지 내용 : " << pTextMessage->getStrText() << endl;
cout << endl;
cout << "보낸 시간 : " << pImageMessage->getISendTime() << endl;
cout << "보낸 사람 : " << pImageMessage->getStrSendName() << endl;
cout << "편지 내용 : " << (string)*pImageMessage->getPImage() << endl;
cout << "편지 주소 : " << pImageMessage->getPImage() << endl;
cout << endl;
delete pTextMessage;
delete pImageMessage;
delete pImage;
return 0;
}