C++ Virtual 是含义及使用
在 C++ 中,virtual
是一个关键字,用于声明虚函数。虚函数是一种特殊的成员函数,它允许在派生类中重写基类中的同名函数,并通过基类指针或引用调用派生类中的函数。
使用 virtual
关键字声明的函数被称为虚函数。在基类中声明虚函数时,可以使用 virtual
关键字将其标记为虚函数。例如:
class Base {
public:
virtual void foo() {
// 基类中的虚函数实现
}
};
在上述代码中,Base
类中的 foo()
函数被声明为虚函数。
当派生类继承了基类并重写了虚函数时,可以使用 override
关键字显式地标记该函数是对基类虚函数的重写。例如:
class Derived : public Base {
public:
void foo() override {
// 派生类中对虚函数的重写实现
}
};
在上述代码中,Derived
类继承自 Base
类,并重写了基类中的虚函数 foo()
。
使用虚函数的主要目的是实现多态性。多态性是面向对象编程的一个重要概念,它允许通过基类指针或引用来调用派生类中的函数,从而实现动态绑定。例如:
Base* basePtr = new Derived(); // 使用基类指针指向派生类对象
basePtr->foo(); // 调用派生类中的 foo() 函数
在上述代码中,通过基类指针 basePtr
调用虚函数 foo()
,实际上会调用派生类 Derived
中的实现。
总结一下,virtual
关键字用于声明虚函数,允许在派生类中重写基类中的同名函数,并通过基类指针或引用调用派生类中的函数,实现多态性。
在 C++ 中,一个类可以通过多重继承同时从多个基类派生,从而拥有多个超类。下面是一个示例:
class Base1 {
public:
void func1() {
// Base1 类的成员函数实现
}
};
class Base2 {
public:
voi