线性表为什么要用虚函数
时间: 2024-09-13 17:06:36 浏览: 41
Chapter2 线性表1
线性表使用虚函数主要是为了实现多态。在面向对象编程中,多态允许我们使用父类的指针或引用来操作不同的子类对象,调用的方法将是对应子类的方法。这样做的好处是可以编写更加灵活和可重用的代码。比如,在一个基类中定义虚函数,然后在各个派生类中重写这些虚函数,我们就可以通过基类的指针或引用来调用派生类的方法,而不需要关心具体的子类类型。
例如,在C++中,我们可能会有这样一个线性表的基类:
```cpp
class LinearList {
public:
virtual void Insert(int value) = 0;
virtual void Delete(int value) = 0;
virtual ~LinearList() {} // 虚析构函数以确保派生类的析构函数被调用
};
```
各个派生类会根据自己的具体实现来重写这些方法:
```cpp
class ArrayList : public LinearList {
public:
void Insert(int value) override {
// ArrayList的插入逻辑
}
void Delete(int value) override {
// ArrayList的删除逻辑
}
};
class LinkedList : public LinearList {
public:
void Insert(int value) override {
// LinkedList的插入逻辑
}
void Delete(int value) override {
// LinkedList的删除逻辑
}
};
```
通过使用虚函数,我们可以创建一个基类指针数组,然后用派生类对象来初始化这个数组:
```cpp
LinearList* lists[] = {new ArrayList(), new LinkedList()};
lists[0]->Insert(1); // 调用的是ArrayList的Insert方法
lists[1]->Delete(1); // 调用的是LinkedList的Delete方法
```
这样,我们就可以通过基类指针来操作不同类型的线性表,而不需要关心具体是哪个派生类。多态的好处在于它增加了代码的可扩展性和可维护性,同时也减少了代码冗余。
阅读全文