Heim >Computer-Tutorials >Computerwissen >So erklären Sie die Funktionsüberladung in C
Angenommen, wir definieren zwei Funktionen im Programm: String test(String str1) und dann int test1(int i). Ihr Inhalt sind sehr einfache Funktionen
String-Test(String str1){
Response.Write („Funktionsüberlastungstest, dies ist eine String-Funktion“);
Gib „123232“ zurück;
}
int test(int i){
Response.Write („Funktionsüberlastungstest, das ist eine int-Funktion“);
Rückkehr1;
}
Wenn wir test("Tofu") und test(888) aufrufen, meldet der Compiler nicht nur keinen Fehler, sondern führt auch unterschiedliche Ergebnisse aus, wie dieses.
Funktionsüberladung bringt uns großen Komfort im Programmierprozess. Wir können den Compiler entscheiden lassen, je nach Änderungen unserer Parameter unterschiedliche Codes auszuführen. Und dieses auch
Eines der Hauptmerkmale der objektorientierten Programmierung. Ich glaube, dass MS wirklich möchte, dass ASP.Net zum Standard für die zukünftige Programmierung im Web wird.
c-Funktionsüberladung
#include
#define n 3
Klassenvektor
{
öffentlich:
Vector(){}
int max(int z[])
{
int maxNumber=z[0];
for(int i=0;i {
if (maxNumber
maxNumber zurückgeben;
}
double max(double z[])
{
double maxNumber=z[0];
for(int i=0;i {
if (maxNumber
maxNumber zurückgeben;
}
long max(long z[])
{
long maxNumber=z[0];
for(int i=0;i {
if (maxNumber
maxNumber zurückgeben;
}
float max(float z[])
{
float maxNumber=z[0];
for(int i=0;i {
if (maxNumber
maxNumber zurückgeben;
}
char* max(char z[3][10])
{
char maxNumber[10];
strcpy(maxNumber,z[0]);
for(int i=0;i
if(strlen(maxNumber)
maxNumber zurückgeben;
}
};
void main()
{
Vector vt;
int a1[3]={1,3,2};
double a2[3]={2.5,7.8,9.3};
long a3[3]={1000,5677,3456};
float a4[3]={1.5f,5.7f,3.8f};
char a5[3][10]={"I","love","china"};
char maxVector[10]={0};
cout cout cout cout int i=0;
strcpy(maxVector,vt.max(a5));
while(maxVector[i]!='
{
cout
}
cout
}
Cs Problem mit überladenen Funktionen in Klassenvorlagen
In deinem Code
T_counter& Operator =(T_counter x)
{
this->data=x.data;
return *this;
}
T_counter& Operator +(T_counter x)
{
this->data+=x.data;
return *this;
};
Wenn Sie c=a+b ausführen, dann ist c der Wert von a+b und a ist auch der Wert von a+b!
*/
//Ändern Sie den Code wie folgt und probieren Sie es aus
#include
using namespace std;
Vorlage
Klasse T_Zähler
{
öffentlich:
T_counter(t a=0)
{
data=a;
}
T_counter& Operator =(T_counter x)
{
this->data=x.data;
return *this;
}
T_counter-Operator +(T_counter x)
{
T_counter y;
y.data=this->data+x.data;
zurück y;
}
T_counter-Operator -(T_counter x)
{
T_counter y;
y.data=this->data-x.data;
zurück y;
}
T_counter-Operator *(T_counter x)
{
T_counter y;
y.data=this->data*x.data;
zurück y;
}
Freund ostream & Betreiber{
wocareturnwoca;
}
Freund istream & Operator >>(istream &input,T_counter & x)
{
cin>>x.data;
Return-Eingabe;
}
t getdata()
{
dies zurückgeben->Daten;
}
privat:
t Daten;
};
int main()
{
T_counter a(5.9),b(6.6),c(0);
coutc=a+b;
coutc=(a-b);
coutc=a*b;
coutcoutcin>>c;
coutsystem("pause");
return 0;
}
Das obige ist der detaillierte Inhalt vonSo erklären Sie die Funktionsüberladung in C. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!