static variable在C++中尝试这样: -
struct myclass
{
myclass()
{
if(count == N) { /*throw some exception here!*/ }
++count;
}
~myclass()
{
--count;
}
private:
static std::size_t count = 0;
};
Run Code Online (Sandbox Code Playgroud)
每当创建一个对象时,count变量就会增加1.
在JAVA
示例实现可能是这样的: -
public class MyClass {
private static final int LIMIT = 10; //Set this to whatever you want to restrict
private static int count = 0;
private MyClass() {}
public static synchronized MyClass getInstance() {
if (count < LIMIT) {
MyClass myClass = new MyClass();
count++;
return myClass;
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)