📜  默认参数和虚函数(1)

📅  最后修改于: 2023-12-03 14:58:53.381000             🧑  作者: Mango

默认参数和虚函数

在C++中,有两个功能非常有用的特性是默认参数和虚函数。这两个特性可以让我们编写更加灵活和模块化的代码。

默认参数

默认参数是指函数参数在声明时可以设置默认值,如果在调用该函数时没有传入这个参数,则使用默认值。为了设置默认参数,我们可以在函数声明中给参数设置赋值,例如:

int func(int x, int y=0) {
    return x + y;
}

int z = func(1); // z的值为1
z = func(1, 2); // z的值为3

我们可以看到,当调用func函数时只传入一个参数时,第二个参数会取默认值0。

默认参数可以让我们编写更加灵活的函数。使用默认参数的好处是可以省略一些参数,使代码更加简洁,同时又不必为缺少参数而担心程序出错。

虚函数

虚函数是指一个类中可以被派生类覆盖的成员函数。为了让一个函数成为虚函数,需要在函数声明时添加virtual关键字。例如:

class Animal {
public:
    virtual void speak() const {
        cout << "I am an animal" << endl;
    }
};

class Dog : public Animal {
public:
    virtual void speak() const {
        cout << "I am a dog" << endl;
    }
};

我们可以看到,类Animalvoid speak()函数加了virtual关键字,使得该函数可以被任何派生类重新实现。

派生类Dog中重新实现了void speak()函数。这意味着,当对象为Dog类型时,调用speak()函数时,执行的是Dog::speak()中的语句。而当对象为Animal类型时,调用speak()函数时,执行的是Animal::speak()中的语句。

虚函数可以让我们编写更加灵活和可扩展的代码。使用虚函数的好处是可以在基类中定义通用的函数,而在派生类中可以根据需要重新实现该函数,使代码更加灵活。