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

  FORUM HardWare.fr
  Programmation
  C++

  modeste petite question sur ce que ca fait ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

modeste petite question sur ce que ca fait ...

n°532853
velleronna​is
Posté le 06-10-2003 à 22:08:43  profilanswer
 

Connaissant les deux classes suivantes :

Code :
  1. class A
  2. {
  3. public:
  4. void f (int i)  {cout << "A::f(" << i << " )" << endl;}
  5. void f (float f) {cout << "A::f(" << f << " )" << endl;}
  6. };
  7. class B
  8. {
  9. public:
  10. void f (){cout << "B::f()" << endl;}
  11. };


 
Que fait la ligne suivante ?
 

Code :
  1. b.A::f(2.4);


 
il parait que c'est ambigu mais que A::f(int) peut etre appele... suis je dans le vrai ?
 
ps : ok, c'est un exemple (tres) con, mais c'est pour comprendre ...

mood
Publicité
Posté le 06-10-2003 à 22:08:43  profilanswer
 

n°532862
Joel F
Real men use unique_ptr
Posté le 06-10-2003 à 22:14:35  profilanswer
 

ton truc est completement foireux
 
b.A::f(2.4) ca veut strictement rien dire

n°532866
Taz
bisounours-codeur
Posté le 06-10-2003 à 22:17:57  profilanswer
 

velleronnais a écrit :


il parait que c'est ambigu mais que A::f(int) peut etre appele... suis je dans le vrai ?

sauf preuve du contraire tu n'arriveras jamais à faire quoique ce soit puisque ça ne compile pas
 
tiens pour ce qui utilise un compilateur C99 vous avait la macro __func__ qui permet de récupérer le nom de la fonction englobante. ce n'est pas encore dans le C++, mais ça devrait y passer je pense. en tout cas c'est utile, si votre compilo le fait ...


Message édité par Taz le 06-10-2003 à 22:21:03
n°532868
velleronna​is
Posté le 06-10-2003 à 22:18:39  profilanswer
 

ben je l'aurais jamais ecrit, mais pour tout te dire je tire ca d'un questionnaire sense juger le niveau du candidat en C++ ...
 
La plupart des questions sont feinteuses, mais pas trop difficiles, mais la je vois pas ce que ca veut tester comme connaissance ?!?

n°532874
Joel F
Real men use unique_ptr
Posté le 06-10-2003 à 22:25:23  profilanswer
 

de deux choses l'une :
1) tu t trompé en recopiant.
2) les gars te prennent pr un con dsl

n°532877
Taz
bisounours-codeur
Posté le 06-10-2003 à 22:27:10  profilanswer
 

ben tu réponds
b non déclaré
B n'hérite pas de A etc
 
 
ça serait pas plutôt
 

Code :
  1. #include <iostream>
  2. using namespace std;
  3. class A
  4. {
  5. public:
  6.   void f (int i)  {cout << "A::f(" << i << " )" << endl;}
  7.   void f (float f) {cout << "A::f(" << f << " )" << endl;}
  8. };
  9.  
  10. class B
  11.   : public A
  12. {
  13. public:
  14.   void f(){cout << "B::f()" << endl;}
  15. };
  16. int main()
  17. {
  18.   B b;
  19.   b.f();
  20.   //  b.f(1); // erreur
  21.   b.A::f(1);
  22.   //  b.f(3.14); // erreur
  23.   b.A::f(3.14f);
  24. }


 
 
B::F() masquant les autres
 
 
g++  -Wshadow est notre ami

n°532880
chrisbk
-
Posté le 06-10-2003 à 22:27:39  profilanswer
 

Taz a écrit :

sauf preuve du contraire tu n'arriveras jamais à faire quoique ce soit puisque ça ne compile pas
 
tiens pour ce qui utilise un compilateur C99 vous avait la macro __func__ qui permet de récupérer le nom de la fonction englobante. ce n'est pas encore dans le C++, mais ça devrait y passer je pense. en tout cas c'est utile, si votre compilo le fait ...


 
 
ceusse sous VC peuvent utiliser la macro __FUNCTION__
(ce qui est effectivement tres pratique pour la gestion d'erreur)

n°532881
Taz
bisounours-codeur
Posté le 06-10-2003 à 22:28:23  profilanswer
 

mais spécifique à ton compilateur [:spamafote]

n°532882
chrisbk
-
Posté le 06-10-2003 à 22:29:27  profilanswer
 

Taz a écrit :

mais spécifique à ton compilateur [:spamafote]


 
sadly [:spamafote]
ca mange pourtant pas de pain ces macros et c bien pratique

n°532883
velleronna​is
Posté le 06-10-2003 à 22:30:11  profilanswer
 

voila le copier/coller integral de l'enonce :
 
4. What do the following snippets of code print :
 
(a) b.f();
(b) b.f(2);
(c) b.A::f(2.4);
 
given the following definitions of A & B :

Code :
  1. class A
  2. {
  3. public:
  4. void   f   (int i) {cout << "A::f(" << i << " )" << endl;}
  5. void   f   (float f) {cout << "A::f(" << f << " )" << endl;}
  6. };
  7. class B
  8. {
  9. public:
  10. void   f   () {cout << "B::f()" << endl;}
  11. };


 
reponse donnee pour le 3eme cas (les 2 1ers sont triviaux) :
 
(c) I suppose this is ambiguous, either A::f(int) candidates
 
ce qui me chiffone, c'est cette histoire d'ambiguite ... ou alors je suis une bouze en anglais ???

mood
Publicité
Posté le 06-10-2003 à 22:30:11  profilanswer
 

n°532885
chrisbk
-
Posté le 06-10-2003 à 22:32:29  profilanswer
 

y manque forcement un morceau, on a meme pas la declaration de b :O (meme si on se doute de son type)
 
et pis
 
 I suppose this is ambiguous, either A::f(int) candidates  
 
ca sonne pas bien anglais, la aussi manque un bout

n°532887
velleronna​is
Posté le 06-10-2003 à 22:34:13  profilanswer
 

j'ai que ca .. desole... l'enonce est tel que je l'ai file !
 
la reponse idem ...

n°532888
Taz
bisounours-codeur
Posté le 06-10-2003 à 22:34:29  profilanswer
 

si o suppos que b est une instance de B :
(a) affiche B::f()
(b) ne compile pas
(c) encore moins
 
voir mon exemple pour la lever d'ambuiguité à cause du caracètre masquant de la définition de B::f()

n°532891
velleronna​is
Posté le 06-10-2003 à 22:35:47  profilanswer
 

maintenant je suis d'accord .. je vois pas trop le but de la chose ?  
dans la mesure ou c'est cense evaluer ton niveau.. qu'est ce que ca peut reveler ce genre d'exercice?

n°532892
Taz
bisounours-codeur
Posté le 06-10-2003 à 22:36:36  profilanswer
 

à blaireau blaireau et demi

n°532893
velleronna​is
Posté le 06-10-2003 à 22:36:41  profilanswer
 

Taz a écrit :

si o suppos que b est une instance de B :
(a) affiche B::f()
(b) ne compile pas
(c) encore moins
 
voir mon exemple pour la lever d'ambuiguité à cause du caracètre masquant de la définition de B::f()


 
ok, merci


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

  modeste petite question sur ce que ca fait ...

 

Sujets relatifs
une petite aide MAPLE[MYSQL] Question sur une "grande table"
[Java] Question simple transformer un DoubleExcel ou VBA question
Une question bête... (source généré par php --> indentation code).[PHP / SQL] Petite base de donnée - etude de faisablité
[c#] Question sur checkboxQuestion importante sur le dévellopement
[RESOLU] Question formattage de nombre...chtite question sur system [résolu]
Plus de sujets relatifs à : modeste petite question sur ce que ca fait ...


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