私は次のクラスを持っています:
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&);
};
sf::Texture
デフォルトのコンストラクタがある場所
私の理解では、すべてのメンバーもデフォルトで構築できるため、デフォルトのコンストラクターを生成する必要があります。それでも、コンストラクターを呼び出さずに派生オブジェクトを構築しようとすると、コンパイラ エラーが発生しますTileset
。デフォルトのコンストラクターが生成されない理由を誰かが説明できますか?
Tile
編集:クラスにはデフォルトのコンストラクターがないことに言及するのを忘れていました。それが何かを変えるかどうかはわかりません