밑의 클래스에 대해서 다형성이라는 것을 넣어보려고 했습니다.
다른 것은 다 되는데(...) 입력받는 부분이 골치로군요. 클래스 안에서 입력을 해주면 좋겠는데요..

역시나(...) 오늘도 소스와 함께 질문이 올라가겠습니다.
=질문 많다고 구박하시면 미워할겝니다. 나름대로 고민도 해보고 올리는 거니까요;; =
#include <iostream>
#include <vector>
#include <stdio.h>
using namespace std;

class Graphic {
public:
        virtual void Draw()=0;
};

class Circle : public Graphic {
public:
        virtual void Draw() {
                cout << "동그라미를 그립니다" << endl;
        }
};

class Line : public Graphic {
public:
        virtual void Draw() {
                cout << "선을 그립니다" << endl;
        }
};

class Triangle : public Graphic {
public:
        virtual void Draw() {
                cout << "삼각형을 그립니다" << endl;
        }
};

class Square : public Graphic {
public:
        virtual void Draw() {
                cout << "네모를 그립니다." << endl;
        }
};

class Test {
private:
        vector<Graphic *> vi;
public:
        vector<Graphic *>::iterator pvi;    ///음...님의 충고로 멤버가 아닌 공개부분에 설정.

        Test() {}
        ~Test() {
                for ( pvi = vi.begin() ; pvi != vi.end() ; ++pvi )
                        delete (*pvi);
        }
        void SetDraw() // 이 함수는 뭐를 받아서 동적으로 집어 넣는다.
        {                    // 질문이 바로 밑의 소스처럼이 아닌 함수의 인자로 Line이나 Circle. Square를 받아서 동적으로 할당되게 하는 방법이 있는지 궁금하군요.
                                     // 즉, Graphic *pGraphic = new 인자로받은거 ... 이렇게 가능한지 모르겠습니다. switch로 해볼까 했지만 그러면 소스가 아름답지 않기 때문에(...)
                Graphic *pGraphic = new Line();  //일단은 시험삼아 만들어보고..
                vi.push_back(pGraphic);              //집어 넣자.
        }

        void GetDraw() {
                for ( pvi = vi.begin() ; pvi != vi.end() ; ++pvi )
                        (*pvi)->Draw();
        }
};

void main()
{
        Test AAA;
        AAA.SetDraw();
        AAA.GetDraw();
}