¿En qué condición se genera el constructor predeterminado?
Tengo la siguiente clase:
class Tileset { //base class
public:
static std::vector<Tileset*> list;
virtual ~Tileset() = 0;
protected:
std::vector<Tile> tiles_list;
sf::Texture sheet;
private: //non copiable
Tileset(const Tileset&);
Tileset& operator=(const Tileset&);
};
dóndesf::Texture
tiene un constructor por defecto
Por lo que yo entiendo, se debe generar un constructor predeterminado, ya que cada miembro puede construirse también por defecto. Sin embargo, tengo un error de compilación cuando intento construir un objeto derivado sin llamar a unTileset
constructor. ¿Alguien puede explicar por qué no se genera ningún constructor predeterminado?
Edición: olvidé mencionar esoTile
La clase no tiene un constructor por defecto. No estoy seguro de si eso cambia algo.