. 4、 C++继承是如何工作的? 解答要点:
继承使得派生类能够使用基类的公有和保护成员,从而实现代码的复用,派生类可以增加成员,也可以隐藏和覆盖基类的成员。对于公有继承,基类成员的访问权限在派生类保持不变。
5、 类与对象有什么区别? 解答要点:
类是类型,是对象的抽象,对象是类的具体实例。一个类可以有多个对象,每个对象都有自己的存储单元,而类不占存储单元。
三、运行结果为: D::virfun() called.
四、填空
① char * ② argv[1] ③ *str++
五、(8分) 定义一个字符栈类Stack(包括类的实现)。数据成员包括一个存放字符的数组stck[ ]和一个栈指针tos。栈数组的尺寸由常量SIZE确定。栈的基本操作为Push()和Pop()。 const int SIZE=27; class Stack { public:
Stack():tos(0){}; void Push(char ch); char Pop(); private:
char stck[SIZE]; int tos; };
void Stack::Push(char ch) {
if(tos==SIZE)
cout<<\ else{
stck[tos]=ch;tos++; } }
char Stack::Pop() {
if(tos==0){
cout<<\
6 / 7
. return 0; } tos--;
return stck[tos]; }
六、(10分)完成下面的函数,对有n个元素的数组a,使数组元素按逆序排列。 void inverse(int *a, int n) { }
int i,*p; p=new int[n]; for(i=0;i<=n-1;i++) p[i]=a[i]; for(i=0;i<=n-1;i++) a[i]=p[n-i-1]; delete []p;
七、(12分)下面的函数统计子字符串substr在字符串str中出现的次数,如果substr在str中不出现,则返回值0。请完成该函数。
int str_count(char *substr, char *str) { }
int count=0; char *pChar;
if(substr==NULL||str==NULL) return count; while(*str!='\\0'){ pChar=substr; while(*pChar==*str){ pChar++; if(*pChar=='\\0'){ count++;break; } else str++;
}//Match while(*pCh...) statement str++;
}//Match while(*str...) statement return count;
7 / 7
相关推荐: