這個題目考察了對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;
};