Witam ponownie. Najłatwiej odda mój problem poniższy kod:
class objectDef
{
public:
sf::Shape* visual; // sf::Shape jest abstrakcyjna
objectDef(sf::CircleShape)
{
visual = new sf::CircleShape(shape);
// reszte kodu pomijam
}
objectDef(sf::ConvexShape) / kazda z tych trzech dziedziczy z sf::Shape jednocześnie dodając co nieco od siebie jak np. getRadius() dla koła.
{
visual = new sf::CircleShape(shape);
}
objectDef(sf::RectangleShape)
{
visual = new sf::RectangleShape(shape);
}
};
class shape
{
public:
sf::Shape* visual;
shape(objectDef& obj)
{
visual = ???? // potrzebuję teraz skopiować całość z pod adresu obj.visual
// i zaalokowac to ponownie w nowej zmiennej/miejscu gdyż obj zaraz ulegnie zniszczeniu.
// tylko jak? chciałbym zachować właściwości każdej z 3 klas tzn specjalnie dostępne funkcje których sf::Shape (jak choćby wspomniany getRadius() dla koła) nie ma.
//jednocześnie nie mogę stworzyć sf::Shape gdyż jest abstrakcyjna
};
}