¿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.

Respuestas a la pregunta(3)

Su respuesta a la pregunta