C++ 函数重载和函数虚函数
答案: c++++ 中的函数重载和函数虚函数允许开发者创建具有相同名称但不同参数列表或行为的函数。详细描述:函数重载: 创建具有相同名称但不同参数列表的函数,用于在不同情况下使用具有相似功能的函数。函数虚函数: 在派生类中覆盖基类的函数,用于多态性,允许派生类提供与基类不同的实现。
C++ 中的函数重载和函数虚函数
函数重载
函数重载允许您创建具有相同名称但具有不同参数列表的多个函数。这对于需要在不同的情况下使用具有相似功能的函数非常有用。
语法:
ret_type function_name(parameter_list_1);
ret_type function_name(parameter_list_2);
...
示例:
void printInfo(int x) {
cout << "int: " << x << endl;
}
void printInfo(double x) {
cout << "double: " << x << endl;
}
int main() {
int a = 10;
double b = 3.14;
printInfo(a); // calls printInfo(int)
printInfo(b); // calls printInfo(double)
return 0;
}
函数虚函数
函数虚函数允许您在派生类中覆盖基类的函数。这对于多态性和面向对象编程非常有用,因为它允许您为派生类提供与基类不同的实现。
语法:
在基类中声明函数时使用关键字 virtual
。
virtual ret_type function_name(parameter_list) const = 0;
在派生类中重写函数时使用关键字 override
。
override ret_type function_name(parameter_list) const { }
示例:
class Shape {
public:
virtual double area() const = 0; // pure virtual function
};
class Circle : public Shape {
public:
double radius;
Circle(double radius) : radius(radius) {}
override double area() const { return 3.14 * radius * radius; }
};
class Square : public Shape {
public:
double side;
Square(double side) : side(side) {}
override double area() const { return side * side; }
};
int main() {
Shape* s1 = new Circle(5);
Shape* s2 = new Square(10);
cout << "Area of circle: " << s1->area() << endl;
cout << "Area of square: " << s2->area() << endl;
return 0;
}
注意事项:
- 函数重载只适用于不同的参数列表。不能只改变返回类型。
- 函数虚函数只适用于虚函数,即在基类中声明为
virtual
的函数。 - 纯虚函数(在基类中声明为
virtual
和= 0
)必须在派生类中重写,否则派生类将成为抽象类。
以上就是C++ 函数重载和函数虚函数的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341