/*用C++實現一個LimitedClass類,該類最多隻能被執行個體化三次,且不能被繼承*/#include <iostream>using namespace std;class LimitedClass{public:static LimitedClass* getInstance();static void setCnt(int);//設定能執行個體化的次數~LimitedClass();//其它方法;private:LimitedClass();//私人建構函式,無法被繼承static int cnt;//執行個體化次數};int LimitedClass::cnt=0;//執行個體化次數類外定義LimitedClass* LimitedClass::getInstance(){if(cnt>0){--cnt;return new LimitedClass();}elsereturn NULL;}LimitedClass::LimitedClass(){cout<<"LimitedClass Constructor!!!"<<endl;}LimitedClass::~LimitedClass(){cout<<"LimitedClass Destructor!!!"<<endl;}void LimitedClass::setCnt(int n){cnt=n;}//測試程式int main(){LimitedClass::setCnt(3);LimitedClass *l1=LimitedClass::getInstance();LimitedClass *l2=LimitedClass::getInstance();LimitedClass *l3=LimitedClass::getInstance();if (l1!=NULL && l2!=NULL && l3!=NULL){cout<<"執行個體化成功3個對象"<<endl;}LimitedClass *l4=LimitedClass::getInstance();if (NULL==l4)cout<<"第四個執行個體無法執行個體化"<<endl;delete l1;delete l2;delete l3;return 0;}