【9】//静态数据成员的初始化
intmain()
{
Point::GetC();
PointA(4,5);
A。GetC();
return0;
}
(9)非成员函数应声明为类的【10】函数才能访问这个类的private成员。
(10)派生类中的成员不能直接访问基类中的【11】成员。
(11)下列程序的输出结果为2,请将程序补充完整。
#include<iostream>
usingnamespacestd;
classBase
{
public:
【12】voidfun(){cout<<1;}
};
classDerived:publicBase
{
public:
voidfun(){cout<<2;}
};
intmain()
{
Base*p=newDerived;
p->fun();
deletep;
return0;
}
(12)请将下列类定义补充完整。
classBase{public:voidfun(){cout<<"Base::fun"<<endl;}};
classDerived:publicBase{
public:
voidfun(){
【13】//显式调用基类的fun函数
cout<<"Derived::fun"<<endl;
}};
(13)多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但[]运算符只能作为类的【14】函数重载。
(14)下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈顶元素在stack[top-1]中,在下面横线处填上适当语句,完成栈类模板的定义。
template<classT>
classTstack
{
enum{size=1000};
Tstack[size];
inttop;
public:
Tstack():top(0){}
voidpush(constT&i){
if(top<size)
stack[top++]=i;
}
Tpop(){
if(top==0)exit(1);//栈空时终止运行
return【15】;
}
};