这个题目考察了对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;
};