【发布时间】:2012-05-17 15:17:19
【问题描述】:
我有以下课程:
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 类没有默认构造函数。我不确定这是否会改变任何事情
【问题讨论】:
-
可能重复? stackoverflow.com/questions/1585708/…(对于您的复制构造函数禁用创建默认构造函数的问题)
标签: c++ constructor default-constructor