如何定義一個只能在棧上生成對象的類

這個題目考察了對C++語法的理解和應用。

1.只能在棧上聲明對象,說明這個類不能在堆上聲明,也就是說不能用new來實現。

2.把類的構造函數聲明爲protect,就可以達到在類外不用在堆上new,但這個也同時在類外不能在棧上聲明對象,必須在類內實現一個接口,來達到在棧上聲明對象。

3.在類外調用成員函數,必須要用類的對象來調用,但是在類外不能聲明類的對象,這個要怎麼辦呢???

   在類的成員函數前加上static關鍵字,就可以實現在類外直接調用函數,而不需要類的對象來調用。

class AA  
{  
public:  
       static AA GetObject(int a)  
       {  
              return AA(a);  
       }  
protected:  
       AA(int a)  
       {  
              _a = a;  
       }  
private:  
       int _a;  
};  





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章