首页 > 后端开发 > C++ > C++ 函数重载和函数虚函数

C++ 函数重载和函数虚函数

WBOY
发布: 2024-04-15 22:36:02
原创
442 人浏览过

答案: 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 { /* implementation */ }

示例:

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++ 函数重载和函数虚函数的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板