题目:请对以下关于实现栈类Stack的题目进行修改和完善。
已知类LinkedList表示列表类,具有四个方法:addElement()、lastElement()、numberOfElement()和removeLastElement()。现需要借助LinkedList来实现一个Stack栈类,C++代码1和C++代码2分别采用继承和组合的方式实现。另外,类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第index个元素。
[C++代码1](继承方式)
```cpp
class Stack : public LinkedList {
public:
void push(Object o) { addElement(o); } // 压栈
Object peek() { return lastElement(); } // 获取栈顶元素
bool isEmpty() { return numberOfElement() == 0; } // 判断栈是否为空
Object pop() {
Object o = lastElement();
removeLastElement();
return o;
} // 弹栈
};
```
[C++代码2](组合方式)
```cpp
class Stack {
private:
LinkedList list; // 使用LinkedList类的实例来实现栈的功能
public:
void push(Object o) { list.addElement(o); } // 压栈
Object peek() { return list.lastElement(); } // 获取栈顶元素
bool isEmpty() { return list.numberOfElement() == 0; } // 判断栈是否为空
Object pop() {
Object o = list.lastElement();
list.removeLastElement();
return o;
} // 弹栈
};
```
若类LinkedList新增加了一个公有的方法removeElement(int index),请问在继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)?