📅  最后修改于: 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;
}
};
我们可以看到,类Animal
中void speak()
函数加了virtual
关键字,使得该函数可以被任何派生类重新实现。
派生类Dog
中重新实现了void speak()
函数。这意味着,当对象为Dog
类型时,调用speak()
函数时,执行的是Dog::speak()
中的语句。而当对象为Animal
类型时,调用speak()
函数时,执行的是Animal::speak()
中的语句。
虚函数可以让我们编写更加灵活和可扩展的代码。使用虚函数的好处是可以在基类中定义通用的函数,而在派生类中可以根据需要重新实现该函数,使代码更加灵活。