📜  C++中函数重载的优缺点

📅  最后修改于: 2021-05-30 10:36:47             🧑  作者: Mango

函数重载是面向对象编程的重要功能之一。它允许用户为具有相同名称但不同的性质不止一个函数。重载的函数使用户可以根据函数的签名为函数提供不同的语义。

函数重载的优点如下:

  • 函数重载的主要优点是它提高了代码的可读性并允许代码重用。
  • 函数重载的使用是为了节省内存空间,一致性和可读性。
  • 加快程序执行速度
  • 代码维护也变得容易。
  • 函数重载为代码带来了灵活性。
  • 该函数可以执行不同的操作,因此可以避免对同一类型的操作使用不同的函数名。

函数重载的缺点如下:

  • 仅在返回类型上不同的函数声明不能重载

插图:

int fun();
float fun();

因为函数不能仅由返回类型重载,所以会出现错误。

  • 如果其中任何一个静态成员函数声明具有相同的名称和相同的参数类型的成员函数声明不能超载。
  • 主要缺点是,它要求编译器对函数名称执行名称处理,以包含有关参数类型的信息。

例子:

C++
// Importing input output stream files
#include 
  
using namespace std;
  
// Methods to print
  
// Method 1
void print(int i)
{
  
    // Print and display statement whenever
    // method 1 is called
    cout << " Here is int " << i << endl;
}
  
// Method 2
void print(double f)
{
  
    // Print and display statement whenever
    // method 2 is called
    cout << " Here is float " << f << endl;
}
  
// Method 3
void print(char const* c)
{
  
    // Print and display statement whenever
    // method 3 is called
    cout << " Here is char* " << c << endl;
}
  
// Method 4
// Main driver method
int main()
{
  
    // Calling method 1
    print(10);
    // Calling method 2
    print(10.10);
    // Calling method 3
    print("ten");
  
    return 0;
}


输出
Here is int 10
 Here is float 10.1
 Here is char* ten

输出说明:

在上面的示例中,所有被命名为3的函数都相同,但是打印不同,我们可以感觉到它们进行了不同的调用。这是可能的,因为传递了参数,根据这些参数执行函数调用,而不管这些函数共享一个通用名称。另外,请记住我们可以通过在返回类型中更改其签名来重载该函数。例如,这里可以为所有这三个函数调用boolean print()函数。

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”