Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1629 connectés 

  FORUM HardWare.fr
  Programmation

  [C++] Surcharge de fonction spéciale

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Surcharge de fonction spéciale

n°58833
bkadoum
Posté le 10-09-2001 à 14:23:57  profilanswer
 

Est-ce possible de surcharger une fonction ayant le même nom, les même paramètres mais un type de retour différent?
Voici mon cas:
 
enum STATUSA
{
...
};
 
enum STATUSB
{
...
};
 
class A
{
private:
STATUSA status;
public:
STATUSA GetStatus() {return status;}
};
 
class B : public A
{
private:
STATUSB status;
public:
STATUSB GetStatus() {return status;}
};
 
Voila pourquoi j'ai besoin de surcharger la fonction GetStatus() de cette facon, car il y a une liste de status pour A et une autre pour B.
Vous me dirrez "t'a qu'a mettre des noms différents aux deux fonctions" Mais j'ai envie qu'elles aient le même nom c'est plus logique! Et la vous me dirrez "C'est pas logique ton code hahaha!" :)
Bref sans déconner vous savez comment je peux faire ca?

mood
Publicité
Posté le 10-09-2001 à 14:23:57  profilanswer
 

n°58835
seblamb
Posté le 10-09-2001 à 14:34:44  profilanswer
 

Non ,on ne peut pas!

n°59096
BifaceMcLe​OD
The HighGlandeur
Posté le 12-09-2001 à 03:11:56  profilanswer
 

Ou alors utilise des classes au lieu d'enums et fait hériter STATUSB de STATUSA.
 
Dans ce cas, B::GetStatus() devrait toujours retourner une valeur de type "const STATUSA&" (plutôt que "STATUSA" ), mais tu pourras aussi lui faire renvoyer une instance de STATUSB.

n°59131
robUx4
misc coder
Posté le 12-09-2001 à 10:29:10  profilanswer
 

L'attribut status est dans les 2 cas private donc C OK.
 
La méthode GetStatus() retourne un type différent mais n'a pas de paramètres différents donc aucun moyen pour le compilo de savoir laquelle tu appelles.
 
De plus Si tu veux GetStatus() qui retourne STATUSA dans la classe B, ben tu essayes d'accéder à un attribut private, alors il aime pas...
 
A mon avis ca a aucun sens de vouloir faire ca (GetStatus qui retourne un type différent). Puisque dans ton code quand tu appelleras GetStatus tu devras déjà présupposer ce qu'il va te sortir comme type. Donc aucun intéret de surcharger...


---------------
Tout n'est pas si facile, tout ne tient qu'à un fil.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++] Surcharge de fonction spéciale

 

Sujets relatifs
HTML --> Cellule tableau spéciale[PHP] pourquoi la fonction filemtime ne marche que sur les .php3 ???
fonction Javascript "clear documentt"[PHP] & la fonction header()
fonction mail, php à l'aide[Visual C++] AfxEndThread(); hors de la fonction lancée par AgxBeginTh
[ programmation en c ] => fonction exit()[ASP]Fonction replace
[ JavaScript ] Comment faire repeter une fonction toute les Secondes??Javascript : Appel d'une fonction (newbie !)
Plus de sujets relatifs à : [C++] Surcharge de fonction spéciale


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR