单选题
C++中的虚函数用于:
A
数据封装
B
操作符重载
C
实现动态绑定
D
继承
答案解析
正确答案:C
解析:
好的,让我们来详细解析这道选择题。
题目:C++中的虚函数用于:
A. 数据封装
B. 操作符重载
C. 实现动态绑定
D. 继承
### 解析:
**A. 数据封装**
- **解释**:数据封装是指将数据和操作数据的方法绑定在一起,形成一个独立的单元(即类)。虽然类中的私有成员和公有成员方法可以实现数据封装,但虚函数本身并不是为了数据封装而设计的。
- **结论**:不正确。
**B. 操作符重载**
- **解释**:操作符重载是指重新定义已有的操作符,使其能够应用于自定义的数据类型(如类)。虽然C++支持操作符重载,但这与虚函数的功能无关。
- **结论**:不正确。
**C. 实现动态绑定**
- **解释**:动态绑定(也称为晚期绑定)是指在运行时确定调用哪个函数。虚函数正是为了实现这一功能而设计的。当一个基类指针或引用指向派生类对象时,通过虚函数调用的方法会在运行时根据实际对象的类型来决定调用哪个版本的函数。
- **示例**:
```cpp
class Base {
public:
virtual void show() {
std::cout << "Base class" << std::endl;
}
};
class Derived : public Base {
public:
void show() override {
std::cout << "Derived class" << std::endl;
}
};
int main() {
Base* basePtr = new Derived();
basePtr->show(); // 输出 "Derived class"
delete basePtr;
return 0;
}
```
在这个例子中,`basePtr` 是一个 `Base` 类型的指针,但它指向的是 `Derived` 类的对象。由于 `show` 方法是虚函数,所以在运行时会调用 `Derived` 类的 `show` 方法,而不是 `Base` 类的 `show` 方法。
- **结论**:正确。
**D. 继承**
- **解释**:继承是指一个类(派生类)可以继承另一个类(基类)的属性和方法。虽然虚函数通常在继承关系中使用,但虚函数本身并不是为了实现继承而设计的。
- **结论**:不正确。
### 答案:
正确答案是 **C. 实现动态绑定**。
