函数重载

简介: 1 C++允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。方便使用,便于记忆。 2 例: 3 形参类型不同 4 int add(int x, int y); 5 float add(float x, float y); 6 形参个数不同 7 int add(int x, int y); 8 int add(int x, int y, int z); 9 重载函数的形参必须不同: 个数不同或类型不同。
 1 C++允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。方便使用,便于记忆。
 2 例:
 3 形参类型不同
 4 int add(int x, int y);
 5 float add(float x, float y);
 6 形参个数不同
 7 int add(int x, int y);
 8 int add(int x, int y, int z);
 9 重载函数的形参必须不同: 个数不同或类型不同。
10 编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪一个函数。
11 
12 
13 int add(int x,int y);
14 int add(int a,int b);
15 编译器不以形参名来区分
16 
17 
18 int add(int x,int y);
19 void add(int x,int y);
20 编译器不以返回值来区分
21 
22 不要将不同功能的函数声明为重载函数,以免出现调用结果的误解、混淆。这样不好:
23 int add(int x,int y)
24 {  return x+y;  
25 }
26 float add(float x,float y)
27 {  return x-y;  
28 }
29 
30 
31 编写三个名为add的重载函数,分别实现两整数相加、两实数相加和两个复数相加的功能。
32 #include<iostream>
33 using namespace std;
34 struct complex
35 {
36     double real;
37     double imaginary;
38 };
39 void main(void)
40 {
41     int m, n;
42     double x, y;
43     complex c1, c2, c3;
44     int add(int m, int n);
45     double add(double x, double y);
46     complex add(complex c1, complex c2);
47 
48     cout<<"Enter two integer: ";
49     cin>>m>>n;
50     cout<<"integer "<<m<<'+'<<n<<"="<<add(m,n)<<endl;
51         cout<<"Enter two real number: ";
52     cin>>x>>y;
53     cout<<"real number "<<x<<'+'<<y<<"= "<<add(x,y)
54             <<endl;
55 
56     cout<<"Enter the first complex number: ";
57     cin>>c1.real>>c1.imaginary;
58     cout<<"Enter the second complex number: ";
59     cin>>c2.real>>c2.imaginary;
60     c3=add(c1,c2);
61     cout<<"complex number (" <<c1.real<< ','
62            << c1.imaginary <<")+("<<c2.real<<','
63            <<c2.imaginary<<")=("<<c3.real<<','
64            <<c3.imaginary<<")\n";
65 }
66 int add(int m, int n)
67 {  return m+n; }
68 
69 double add(double x, double y)
70 {  return x+y; }
71 
72 complex add(complex c1, complex c2)
73 {
74     complex c;
75     c.real=c1.real+c2.real;
76     c.imaginary=c1.imaginary+c2.imaginary;
77     return c;
78 }

 

目录
相关文章
|
1月前
|
Linux C语言 C++
C++之函数重载【详解】
C++之函数重载【详解】
|
4月前
|
编译器 Linux C语言
【C++】缺省参数与函数重载
【C++】缺省参数与函数重载
44 0
|
1天前
|
编译器 C++
C++函数重载详解
C++函数重载详解
5 1
|
25天前
|
编译器 C语言 C++
【C++】函数重载
【C++】函数重载
25 2
|
1月前
|
编译器 C++
C++函数重载
C++函数重载
|
2月前
|
编译器 Linux C语言
【c++】函数重载
【c++】函数重载
【c++】函数重载
|
2月前
|
编译器 Linux C语言
初谈C++:缺省参数&&函数重载
初谈C++:缺省参数&&函数重载
46 1
|
8月前
|
C语言 C++
详解函数重载
函数重载不管是平时学习过程中,还是校招里面都是一个重点,但是有人就学的很浅,只知道调用来调用去的,本文将对函数重载在校招过程中能够考察到的点进行详细的阐释。
|
4月前
|
编译器 Linux C语言
C++缺省参数以及函数重载
C++缺省参数以及函数重载
82 0
|
10月前
|
编译器 C语言 C++
C++之函数重载
C++之函数重载
70 0

热门文章

最新文章