2013-07-17 4 views
2

SFML에는 추상 기본 클래스 sf :: Drawable을 상속 한 몇 가지 유형의 객체 (sf :: Shape, sf :: Sprite, sf :: Text)가 있습니다. std :: vector를 생성하면 벡터에 sf :: Drawable 클래스를 상속 한 모든 객체를 저장할 수 있습니까?벡터 및 추상 클래스

답변

2

추상 클래스의 객체를 만들 수 없으므로 벡터에 저장할 수 없습니다. 그러나 벡터에있는 객체에 대한 포인터를 저장할 수 있습니다.

+0

@ DavidRodríguez-dribeas 네 말이 맞아. 나는 그것을 바꿨다. – Oswald

2

포인터 (스마트 포인터 이상) 형식을 저장하는 std::vector을 만드는 경우이를 수행 할 수 있습니다.

0

std :: vector를 만들면 해당 벡터에 sf :: Drawable 클래스를 상속 한 모든 객체를 저장할 수 있습니까?

네, 그렇게 할 수 있습니다. 그러면 포인터의 벡터가 필요합니다 (추상 클래스를 인스턴스화 할 수 없기 때문에).

1

그래 당신은 벡터에 저장 될 수 있습니다

std::vector <sf::Drawable*> 

으로이 기본 클래스를 기반으로 객체에서 포인터를 벡터를 선언 할 수 있습니다.