begin process at 2012 05 30 04:39:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

Surcharger une fonction (sans changer la signature)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Surcharger une fonction (sans changer la signature)

jeudi 15 mars 2007 à 23:50:22 | Surcharger une fonction (sans changer la signature)

julien_boss

Bonjour, voilà j'aimerais simplement avoir une fonction "int fonction();" et une autre "char fonction();". Comme la signature est la même, je ne peux pas faire ca simplement :_
Y'aurait il une astuce ? les template peut etre ... ?
merci
vendredi 16 mars 2007 à 01:22:53 | Re : Surcharger une fonction (sans changer la signature)

SAKingdom

Membre Club
En C++, c'est fesable avec les classes mais en C, non.

C++ (@++)

vendredi 16 mars 2007 à 09:34:15 | Re : Surcharger une fonction (sans changer la signature)

luhtor

Tu peux toujours remplacer ta fonction par une procédure:
fonction (int&) et fonction( char&)
vendredi 16 mars 2007 à 17:28:30 | Re : Surcharger une fonction (sans changer la signature)

vecchio56

Administrateur CodeS-SourceS
Au pire, leur donner des noms différents

_____________________________________
Un éditeur de ressources gratuit pour Windows

samedi 17 mars 2007 à 11:52:52 | Re : Surcharger une fonction (sans changer la signature)

julien_boss

SAKingdom tu dis que c'est possible en C++ grace aux classes, je peux savoir comment ?
vecchio => enfaite si je veux surcharger la fonction, c'est justement pour qu'elles aient le meme nom ^^

je vous explique plus en détail ce que je fais (jsais pas si c'est utile m'enfin ...) :
je suis à l'intérieur d'une classe appelée LogFile et je souhaite surcharger la fonction GetTabEn(); , comme ceci :
ENREGISTREMENT * GetTabEn(void);
std::deque<ENREGISTREMENT> GetTabEn(void);

ENREGISTREMENT étant une structure perso.

j'obtiens l'erreur là :
std::deque<ENREGISTREMENT, std::allocator<ENREGISTREMENT> > LogFile::GetTabEn()' and `ENREGISTREMENT* LogFile::GetTabEn()' cannot be overloaded

samedi 17 mars 2007 à 13:33:26 | Re : Surcharger une fonction (sans changer la signature)

vecchio56

Administrateur CodeS-SourceS
Oui mais ça ne te sert à rien que les deux fonctions aient le même nom
Tu veux faire ca:
ENREGISTREMENT* e = GetTabEn();
std::deque<ENREGISTREMENT> d = GetTabEn();

Quelle différence avec ca?
ENREGISTREMENT* e = GetTabEn1();
std::deque<ENREGISTREMENT> d = GetTabEn2();
_____________________________________
Un éditeur de ressources gratuit pour Windows

samedi 17 mars 2007 à 13:36:36 | Re : Surcharger une fonction (sans changer la signature)

julien_boss

Evidemment je peux faire ca mais je tiens à garder le même nom :) mais si c'est pas possible tant pis, mais ca serait dmg
samedi 17 mars 2007 à 17:54:37 | Re : Surcharger une fonction (sans changer la signature)

juju12

On n'a pas le droit de surcharger une fonction en changeant seulement le type de retour:
le seul truc que tu peux faire c'est passer un pointeur (ou un ref) pour récupérer la valeur, dans ce cas la surcharge est possible :

definition:
GetTabEn((ENREGISTREMENT*)&rReturn,...);
GetTabEn((std::deque<ENREGISTREMENT>)&rReturn);

utilisation:
ENREGISTREMENT* A;
std::deque<ENREGISTREMENT> B;
GetTabEn(A);
GetTabEn(B);
samedi 17 mars 2007 à 20:19:16 | Re : Surcharger une fonction (sans changer la signature)

julien_boss

ok, et avec les template (oops, on est dans le forum C me suis trompé, si on pouvait déplacer en C++ ), ca n'est pas possible ?
samedi 17 mars 2007 à 20:42:29 | Re : Surcharger une fonction (sans changer la signature)

vecchio56

Administrateur CodeS-SourceS
C'est déplacé. Montre nous un bout de code que tu voudrais pouvoir écrire (même si ca ne compile pas), pour qu'on comprenne ce que tu veux.

_____________________________________
Un éditeur de ressources gratuit pour Windows


1 2

Cette discussion est classée dans : fonction, changer, signature, simplement, surcharger


Répondre à ce message

Sujets en rapport avec ce message

pb classe [ par mat74 ] salut a ts voila j'ai taper sa com code :class personnage{private:float x;public:float changer(personnage); }vaisseau;ensuite je definis la fonction Rafraichissement du bureau [ par Xentor609 ] Re-Salut,Je cherche une fonction permettant de changer l'ecran de fond du bureau.J'utilise la fonction SystemParametersInfo(), mais le bureau est chan Actualiser une bitmap [ par matty30 ] Bonjour,Je cherche à changer une bitmap qui se trouve ds ma bdd dans on clic droit sur cette bdd.Pour cela, j'ai crée la fonction une fonction affiche fred=> simplement read? [ par by_rabbit_08 ] Bonjour! enfait, j'ai une fonction "fread(&car, sizeof(char), 16, file))", qui lis 16 caractère dans un fichier tout simplement... J'aimerais savoir s (winsock2.h)'WinMain' : impossible de surcharger la fonction [ par SeBaZaToR2 ] Boujour à tous, J'ai un petit problème. J'ai cherché pendant 2 heures sur le forum et je suis désespéré... J'ai appris par moi même (en suivant un tut Fonction decouper une chaine de caractere [ par 2koa ] Bonjour, je dois ecrire une fonction qui decoupe une chaine de caracteres en mots. La fonction renvoie un tableau, où chaque case contient l'adresse Algorithme [ par serie1 ] Bonjour, je débute. Quelqu'un pourrait m'expliquer le déroulement de cet alogo. J'ai bien compris que l'on appelle la fonction que l'on a crée "calcu fonction FORC() [ par andromida ] [i]Salut tous; comment peut on utiliser la fonction [b]forc()[/b] sur C sous windows pour creer des processus pères et d'autres fils Par exemple comm struct [ par morbak01 ] BOnjour, ss debutant et j'ai une petie question: Je regroupe ds un struct plusierus état de led: struct led { unsigned led1 : 1 ; unsigned led2 : 1


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales