📅  最后修改于: 2023-12-03 14:39:59.060000             🧑  作者: Mango
C++中的虚函数是在基类中用virtual
关键字声明的成员函数。这意味着,当在派生类中实现该函数时,在基类指针或引用中调用该函数将调用派生类中的版本。
虚函数允许多态性,这是面向对象编程中非常重要的概念。这意味着可以使用一个基类的指针或引用来调用相应的派生类中的方法,而无需知道派生类的具体类型。这样可以使代码更加灵活。
class Base {
public:
virtual void func();
};
以下是一个简单的示例程序:
#include <iostream>
using namespace std;
class Base {
public:
virtual void Print() {
cout << "Base class" << endl;
}
};
class Derived : public Base {
public:
void Print() {
cout << "Derived class" << endl;
}
};
int main() {
Base* b = new Derived();
b->Print(); // 输出: Derived class
delete b;
return 0;
}
纯虚函数是在基类中声明为纯虚函数的虚函数,不需要实现它,但不同于虚函数,它需要在类型上进行标记=0
。派生类必须实现这样的函数。以下是一个包含纯虚函数的例子:
class Base {
public:
virtual void Draw() = 0; // 纯虚函数
};
class Circle : public Base {
public:
void Draw() {
cout << "Circle drawn" << endl;
}
};
int main() {
Circle c;
c.Draw(); // 输出: Circle drawn
return 0;
}
虚函数的使用可以帮助编写更灵活的代码,并且常常与多态性和继承一起使用。了解虚函数的语法和用法是C++编程中一个基本的概念。