- 1 - c++ 类虚函数
在C++中,虚函数是一种特殊的函数,它可以被子类重写,但它的行为取决于对象的实际类型。这意味着,如果你有一个指向基类的指针,但指向的对象是子类,那么调用虚函数时会调用子类的实现。
为了将函数定义为虚拟的,您需要在函数声明前面添加关键字“virtual”。例如:
```
class Base {
public:
virtual void foo() {
std::cout << 'Base::foo()' << std::endl;
}
};
```
这声明了一个名为“foo”的虚函数,它在基本类中实现,并可以在子类中重写。
子类可以通过覆盖基类中的虚函数来提供自己的实现。例如:
```
class Derived : public Base {
public:
void foo() override {
std::cout << 'Derived::foo()' << std::endl; - 2 - }
};
```
这里的“override”关键字告诉编译器,您打算重写基类中的函数。
当您使用基类指针调用虚函数时,将调用实际对象的实现。例如:
```
Base* b = new Derived();
b->foo(); // 输出:Derived::foo()
```
因为“b”指向一个派生对象,“foo”函数的派生实现将被调用。
总之,虚函数是C++中强大的工具,它使多态和继承更容易实现。但是,您需要小心使用它们,以避免潜在的性能问题和运行时错误。