参考答案:
详细解析:
(共15分)
阅读以下说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
已知类LinkedList表示列表类,该类具有四个方法:addElement()、lastElement()、numberOfElement()以及removeLastElement()。四个方法的含义分别为:
void addElement(Object):在列表尾部添加一个对象;
Object lastElement():返回列表尾部对象;
int numberOfElement():返回列表中对象个数;
void removeLastElement():删除列表尾部的对象。
现需要借助LinkedList来实现一个Stack栈类,C++代码1和C++代码2分别采用继承和组合的方式实现。
【C++代码1】
class Stack :public LinkedList{
public:
void push(Object o){addElement(o);}; //压栈
Object peek(){return (1) ;}; //获取栈顶元素
bool isEmpty(){ //判断栈是否为空
return numberOfElement()==0;
};
Object pop() { //弹栈
Object o=lastElement();
(2) ;
return o;
};
};
【C++代码2】
class Stack{
private:
(3) ;
public:
void push(Object o){ //压栈
list.addElement(o);
};
Object peek(){ //获取栈顶元素
return list. (4) ;
};
bool isEmpty() { //判断栈是否为空
return list.numberOfElement()==0;
};
Object pop(){ //弹栈
Object o=list.lastElement();
list.removeLastElement();
return o;
};
};
【问题】
若类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)? (5) (A.继承B.组合)
参考答案:
详细解析: