作为练习,我希望创建一个不能超过N个实例的类.我怎样才能做到这一点?
例如,假设您要限制与数据库的连接数,以便不超过N个用户可以同时连接.我理解如何制作一个单身人士:
class Singleton {
private:
Singleton(const Singleton&);
Singleton();
public :
static Singleton Instance() {
static Singleton p;
if(!p) {
p = new Singleton;
}
};
Run Code Online (Sandbox Code Playgroud)
但如果N> 1个对象,我需要帮助.
首先,为什么?
一旦我们解决了这个问题,你就会知道如何创建一个只允许一个实例的类,我假设?通常,您使用静态实例和私有构造函数(或其某些变体)来执行此操作.要将其推广到N个实例,您需要做的就是存储一个静态实例数组.
最后,说真的,为什么?