Maison > Article > tutoriels informatiques > Comment expliquer la surcharge de fonctions en C
Supposons que nous définissions deux fonctions dans le programme : String test(String str1) puis int test1(int i). Leur contenu est des fonctions très simples
.Test de chaîne(Chaîne str1){
Response.Write ("Test de surcharge de fonction, ceci est une fonction String");
Renvoyer "123232" ;}
int test(int i){
Response.Write ("Test de surcharge de fonction, c'est une fonction int"
);
Retour1;
}
Lorsque nous appelons test("Tofu") et test(888), le compilateur non seulement ne signalera pas d'erreur, mais exécutera également des résultats différents, comme celui-ci.
La surcharge de fonctions nous apporte une grande commodité dans le processus de programmation. Nous pouvons laisser le compilateur décider d'exécuter différents codes en fonction des changements de nos paramètres. Et celui-là aussi
L'une des principales fonctionnalités de la programmation orientée objet. Je crois que MS souhaite vraiment qu'ASP.Net devienne le standard pour la programmation future sur le Web.
surcharge de fonction c
#inclure
#définir n°3
Vecteur de classe
{
public :
Vecteur(){}
int max(int z[])
{
int maxNumber=z[0];
pour(int i=0;i {
if (maxNumber
retourner le numéro max ;
}
double max(double z[])
{
double maxNumber=z[0];
pour(int i=0;i {
if (maxNumber
retourner le numéro max ;
}
long max(long z[])
{
long maxNumber=z[0];
pour(int i=0;i {
if (maxNumber
retourner le numéro max ;
}
flotteur max(float z[])
{
float maxNumber=z[0];
pour(int i=0;i {
if (maxNumber
retourner le numéro max ;
}
char* max(char z[3][10])
{
char maxNumber[10];
strcpy(maxNumber,z[0]);
pour(int i=0;i
if(strlen(maxNumber)
retourner le numéro max ;
}
};
void main()
{
Vecteur 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
}
Le problème de C concernant les fonctions surchargées dans les modèles de classe
Dans votre code
T_counter& opérateur =(T_counter x)
{
this->data=x.data;
retourne *ceci ;
}
T_counter&opérateur +(T_counter x)
{
this->data+=x.data;
retourne *ceci ;
};
Si vous exécutez c=a+b ; alors c est la valeur de a+b, et a est également la valeur de a+b !
*/
//Changez le code comme suit et essayez-le
#inclure
en utilisant l'espace de noms std;
modèle
classe T_counter
{
public :
T_counter(t a=0)
{
données=a;
}
T_counter& opérateur =(T_counter x)
{
this->data=x.data;
retourne *ceci ;
}
Opérateur T_counter +(T_counter x)
{
T_counter y;
y.data=this->data+x.data;
retourne-toi;
}
Opérateur T_counter -(T_counter x)
{
T_counter y;
y.data=this->data-x.data;
retourne-toi;
}
Opérateur T_counter *(T_counter x)
{
T_counter y;
y.data=this->data*x.data;
retourne-toi;
}
ami ostream et opérateur{
wocareturnwoca;
}
ami istream et opérateur >>(istream &input,T_counter & x)
{
cin>>x.data;
entrée de retour ;
}
je n'obtiens pas de données()
{
retourner ceci -> données ;
}
privé :
t données ;
};
int main()
{
T_compteur a(5.9),b(6.6),c(0);
coutc=a+b;
coutc=(a-b);
coutc=a*b;
coutcoutcin>>c;
coutsystem("pause");
retour 0;
}
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!