Maison  >  Article  >  tutoriels informatiques  >  Comment expliquer la surcharge de fonctions en C

Comment expliquer la surcharge de fonctions en C

王林
王林avant
2024-01-12 11:36:041181parcourir

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"

);

Retour

1;

}

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

Vous pouvez modifier l'initialisation à votre guise. Faites également attention à modifier les variables globales. Vous pouvez également modifier la longueur du tableau. Je ne sais pas si la taille de la chaîne est la plus longue. C'est ce que j'ai fait. Si c'est pour comparer la taille du code ASCII, changez simplement la fonction.

#inclure

#include "string.h"

#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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer