Em que condição o construtor padrão é gerado?
Eu tenho a seguinte classe:
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&);
};
Ondesf::Texture
tem um construtor padrão
Pelo que entendi, um construtor padrão deve ser gerado, já que todos os membros podem ser construídos por padrão também. No entanto, eu tenho um erro de compilador quando tento construir um objeto derivado sem chamar umTileset
construtor. Alguém pode explicar por que nenhum construtor padrão é gerado?
edit: esqueceu de mencionar queTile
classe não tem um construtor padrão. Não tenho certeza se isso muda alguma coisa