-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunction_overloading.cpp
120 lines (68 loc) · 1.86 KB
/
function_overloading.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include <iostream>
/*
Birden fazla fonksiyonun aynı ismi
alabilmesi anlamına gelmektedir. Bu özellik
C dilinde mevcut değildir.
static linking -> compiler, function + variable
dynamic linking -> run time, finding true function
** C dilinde derleyiciye fonksiyonun sadece adresi gönderilir
fakat CPP dilinde adres+imzası(inputları parametreleri) gönderilir
** Function redecleration overloading değil karıştırma...
int func(int)
int func(int =10) bu durumda redecleration
void func(int x)
void funv(const int x) bu durumda redecleration
**Farklı scope lar da aynı isimde fonksiyon tanımlamak
function overloading olmaz.
Funtion Overloading Resolution
1) Derleyici bütün fonksiyonları sıralar
2) Aday fonksiyonları seçiyor (parametre ve türlere bakar)
*/
using namespace std;
//ex1
// void sum(int,int);
// void sum(double,double);
// int main(){
// int a = 5;
// int b = 7;
// sum(a,b);
// sum((double)a,(double)b);
// }
// void sum(int a ,int b) {
// cout<<"sum ints "<<(a+b)<<endl;
// }
// void sum(double a ,double b) {
// cout<<"sum doubles "<<(a+b)<<endl;
// }
//integral promotion
// float --> double olur
// short char bool --> int olur. Fakat tam tersi mümkün değil.
// void sum(int,int);
// void sum(double,double);
// int main(){
// float a = 5;
// float b = 7;
// sum(a,b);
// sum((double)a,(double)b);
// }
// void sum(int a ,int b) {
// cout<<"sum ints "<<(a+b)<<endl;
// }
// void sum(double a ,double b) {
// cout<<"sum doubles "<<(a+b)<<endl;
// }
//ex3
void sum(int,int);
void sum(const double, const double);
int main(){
float a = 5;
float b = 7;
sum(a,b);
sum(a,b);
}
void sum(int a ,int b) {
cout<<"sum ints "<<(a+b)<<endl;
}
void sum( const double a , const double b) {
cout<<"sum doubles "<<(a+b)<<endl;
}