class Mom
{
public:
virtual void prnt() = 0;
};
class Son : public Mom
{
public:
void prnt() { cout << "아들!" << endl; }
};
class Daughter : public Mom
{
public:
void prnt() { cout << "딸!" << endl; }
};
이런 클래스가 있다고 칠 때
메인 함수에서
Mom *Home[2];
Son *son = new Son;
Daughter *daughter = new Daughter;
Home[0] = son;
Home[1] = daughter;
for(int i = 0 ; i < 2 ; i++)
{
Home[i]->prnt();
}
이렇게 부모클래스 포인터 배열로
자식 클래스들을 관리할 수 있는데
이걸 리스트를 써서 관리할 수 있을까요?
관리 하려면 어떻게 해야 할까요?
라고 질문글을 거의 다 썼는데
문득 아이디어가 떠올라서...
list<Mom*> Home1;
Home1.push_back(son);
Home1.push_back(daughter);
for (auto iter : Home1)
{
iter->prnt();
}
이렇게 해봤더니 잘 되는군요! ㄷㄷㄷㄷㄷ
질문글 쓰다 도중에 해결했습니다 ㄷㄷㄷㄷㄷㄷㄷ
봐주셔서 감사합니다 ㄷㄷㄷㄷㄷ