Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Officiels > Programmation > Apprenez à programmer en C++ ! > [Théorie] La Programmation Orientée Objet > Nouveautés pour les fonctions > Lecture des commentaires

Nouveautés pour les fonctions

Vous devez être inscrit pour pouvoir poster des messages

Page : 1 
Pseudo Commentaire
Page : 1 
Hors ligne Gravstein # Posté le 30/11/2006 à 21:23:16 - Ce membre n'a pas mis de note
Bonjour!
Avatar
Groupe : Membres
Wouaaaa! o_O Alors là, je suis épaté!
Tu les enchaînes de plus en plus vite, ou tu commances à être accro? :p
Félicitation, en tout cas!

Juste un détail: Il serait, à mon goût judicieux de préciser que c'est à l'appréciation du compilateur d 'inliner ou non les fonctions, même si le mot-clé inline est présent.

Bonne continuation!

PS: t'a vu mon com', pour ton tuto précédent?

God bless America.
Chuck Norris blesse tout le monde
 
Hors ligne Ammoniac # Posté le 30/11/2006 à 22:12:45 - Ce membre a mis la note : 19
d'oh!
Groupe : Membres
tres tres bon,mais je me permet une question:
ne pouvant attendre tes cours de C++,j'avais commencé a lire un livre dessus,et il parlaient de deux sortes d'inline,un explicite et un implicite,quelqu'un opurrait m'expliquer? :p
19/20 sinon,parce que la perfection n'existe pas :lol:

La vierge Marie a accouché pucelle,et Jésus n'a jamais eu de rapports avec une femme;que dois-je comprendre si l'on me dit que je baise comme un dieu?
 
Hors ligne Piwaï # Posté le 30/11/2006 à 22:55:03 - Ce membre n'a pas mis de note
Why can't we be friend ?
Avatar
Groupe : Membres
J'ai un léger doute. Je viens de lire qu'on ne peut pas définir de valeur par défaut dans la déclaration du corps des fonctions. Est-ce bien certain ?

Il me semble bien j'ai appris le contraire, j'ai du le faire avant même de connaitre les prototypes... D'autres part, dans un prototype, on est même pas obligé de mettre les noms des variables, on peut ne rien mettre, juste les types... dans ce cas, on mettrai "int = 0" ???

Non, sérieux, j'ai un doute. Je vérifierai dès que j'aurai l'occasion, c'est à dire un poil de code et gcc sous la main. :)

Ammoniac, il faut savoir que ton compilateur fait beaucoup de choses par lui même, sans que tu demandes forcement quelque chose. Ainsi, il peut décider par lui même de transformer une fonction normale en fonction inline s'il l'estime plus rapide ainsi, c'est ptet ca les fonctions inline implicites ( ? ). Dans le même genre, il peut transformer une fonction récursive terminale en fonction itérative. Les compilos sont trop fort ;)

http://www.piwai.info
"La violence est le dernier refuge de l'incompétence". Isaac Asimov, Fondation.
Créateur de 2H4U : Too Hard For You et découvrez aussi BisouLand.
 
Hors ligne M@teo21 # Posté le 01/12/2006 à 01:08:45 - Ce membre n'a pas mis de note
Doh ! Nuts. Mmh, donuts !
Avatar
Admins
Ce que le compilo fait, à la limite ça le regarde, c'est n'est pas le problème du programmeur.

Sinon, je confirme qu'on ne doit définir les valeurs par défaut que dans les prototypes, je l'ai lu et relu, testé et retesté. Je suis formel ;)

Ce qui se conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément.

Nicolas Boileau (je suis fan)
Autobiographe à ses heures perdues :p
 
Hors ligne Antartika # Posté le 01/12/2006 à 08:26:36 - Ce membre n'a pas mis de note
Groupe : Membres
Pour le inline implicite, un peu de patience ;)

Pour l'instant il n'y a que du inline explicite (c'est à dire que tu écris le mot inline dans ton code).
Hors ligne [Kansuu] # Posté le 01/12/2006 à 13:57:22 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Je sais pas si c'est deja dit ou si j'ai raison mais a la question 3 du quiz faudrais pas mettre lenomdelafenetre entre des "" ?

Image utilisateur
http://shinsblog.wordpress.com/
これからもよろしくな。
 
Hors ligne rushia # Posté le 01/12/2006 à 14:38:29 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Pas si c'est une variable ;) . Sinon le tuto est bien fait 20/20.
Hors ligne M@teo21 # Posté le 01/12/2006 à 14:56:50 - Ce membre n'a pas mis de note
Doh ! Nuts. Mmh, donuts !
Avatar
Admins
lenomdelafenetre c'est une chaîne en mémoire ;) Une pointeur quoi.

Ce qui se conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément.

Nicolas Boileau (je suis fan)
Autobiographe à ses heures perdues :p
 
Hors ligne Pingouin chauffé # Posté le 03/12/2006 à 11:06:39 - Ce membre a mis la note : 19
Platypus Addict
Avatar
Groupe : Membres
Great !
Encore un excellent tuto :)
En si peu de temps, moi je dis : respect :-°

Mais le QCM n'est pas très clair...
Bon, 19/20 à cause du QCM ;)

Herr Mannelig, herr Mannelig trolofven i mig
För det jag bjuder så gerna
I kunnen väl svara endast ja eller nej
Om i viljen, eller ej.
 
Hors ligne amadeus666 # Posté le 03/12/2006 à 15:00:13 - Ce membre a mis la note : 19
Groupe : Membres
Bonjour,

Dans le quiz, à la question 4
Citation
Toujours avec la même fonction, est-il possible de centrer une fenêtre dont le titre serait "Ma fenêtre" sans préciser de dimensions ?

Vous parlez de la fonction de la question 2 qui se nomme ouvrirFenetre.

Or dans la correction, vous la nommé dans la correction de la question 4 centrerFenetre et donc ce n'est plus la même fonction puisque son nom change.

Sinon, Super tutos 19/20.
Hors ligne hokkos # Posté le 04/12/2006 à 00:56:18 - Ce membre n'a pas mis de note
Groupe : Membres
Faudrait pas ajouter que actuellement les compilateurs sont suffisament malin pour savoir quand inliner ou non. Puis que il ne faut pas inliner des turcs trop long, ou avec des boucles ou récurssif, même si le compilo le remarque quand même ;) ?
Hors ligne chione # Posté le 07/12/2006 à 11:38:36 - Ce membre a mis la note : 19
Avatar
Groupe : Membres
Ahhh quel plaisir, autant "c" est assez loin de php pour plein de choses, autant avec c++ je ne suis plus du tout perdu. Entre les references, les fonctions avec valeur par défaut, et bientôt les class (tout ça est présent dans php) je m'y retrouve beaucoup mieux.

Une question est-il possible de faire une fonction avec une variable en référence avec une valeur par défaut?

exemple

int maFonction(int &maValeur = 3)

je demande car ça c'est impossible en php4 mais possible en php5

maValeur étant une référence à une autre variable, de lui mettre une valeur par défaut devrait faire tout planter car 3 n'est pas une variable...
 
Hors ligne boulate77 # Posté le 10/12/2006 à 10:41:39 - Ce membre a mis la note : 20
c'est moi!la! dérier toi!
Avatar
Groupe : Membres
rien a redire comme dabitude
 
Hors ligne wado # Posté le 10/12/2006 à 16:12:03 - Ce membre a mis la note : 10
Groupe : Membres
Bonjour,

Des tutos de première classe.

Je suis impatient de connaître la suite.

10/10
Hors ligne soyel # Posté le 19/12/2006 à 01:21:40 - Ce membre n'a pas mis de note
plop!
Groupe : Membres
Pas mal du tout ça fait plaisir que le reste du cour soit sortis :D d'autant plus que les elements vue peuvent être fortement utile (macros par exemple)
Citation : M@teo21
Quand vous êtes prêts, rendez-vous au proch... bon, je suis déjà dans le chapitre suivant moi, qu'est-ce que vous attendez ? :p
Bah que tu écrives la suite voyons :p :-° ...
On te fais confiance, hein! Te depeche surtout pas :) ! Faudrais pas commencer à bacler les cours arrivé si loin :lol: (surtout sur la POO car depuis le temps que tu nous en parle on commence à avoir un petit peu peur pour ceux qui ne connaissent pas). Bon courage et j'éspère pas trop de nuit blanche pour toi car ne serais-ce que d'être webmaster demande deja beaucoup de taf. Ca serais criminelle de t'en demander plus ^^ .

ENCORE MERCI POUR TOUT CELA.

Gakumon ni chikamichi nashi!
 
Hors ligne [Hugo] # Posté le 04/01/2007 à 10:06:20 - Ce membre n'a pas mis de note
Groupe : Membres
Super intéressant!!! J'ai toutefois une question naïve : que se passe-t-il dans ce cas-là :

fonction surchargée + avec définition par défaut :

int fonction(int,int, int=valpardefaut)
int fonction(int,int)

Si j'appelle la fonction en profitant de la définition par défaut, genre :

a = fonction(1,2)

comment le compilo se dépatouille de la situation ? y a-t-il une règle de priorité entre surcharge de fonction et valeur par défaut des paramètres... ou ça plante ? Ca me semblerait intéressant de le préciser dans le cours...

Hugo
Hors ligne Ultiny # Posté le 22/01/2007 à 00:19:04 - Ce membre n'a pas mis de note
Romain
Avatar
Groupe : Membres
Bonsoir,

Je n'ai pas compris quelque chose dans le Quizz :

Code : C++
void ouvrirFenetre(char *titre, int largeur = 250, int hauteur = 300, bool centree = false);
ouvrirFenetre("Bienvenue", 200, 200);


Selon moi, on ne pouvais pas appeler la fonction ouvrirFenetre de cette mannière à cause du premier argument. Je vois qu'on récupére un pointeur titre, alors qu'on donne une chaine en paramétre.

Je me trompe ou il y a bien un problème ?

EDIT: Ok j'ai compris par moi même, en remplaçant char *titre par char titre[] ça a été plus clair dans ma tête et ça ma mémoré le cours qui explique ceci justement.
 
Hors ligne Dagrut # Posté le 25/10/2007 à 20:36:56 - Ce membre a mis la note : 20
Be API! ^_^
Avatar
Groupe : Membres
Citation : [Hugo]
Super intéressant!!! J'ai toutefois une question naïve : que se passe-t-il dans ce cas-là :

fonction surchargée + avec définition par défaut :

int fonction(int,int, int=valpardefaut)
int fonction(int,int)

Si j'appelle la fonction en profitant de la définition par défaut, genre :

a = fonction(1,2)

comment le compilo se dépatouille de la situation ? y a-t-il une règle de priorité entre surcharge de fonction et valeur par défaut des paramètres... ou ça plante ? Ca me semblerait intéressant de le préciser dans le cours...

Hugo

Bonne question, je trouve, mais je la compléterais par ce code :
Code : C++ - Afficher / masquer les numéros de ligne
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. int somme(int nb1 = 0, int nb2 = 0, int nb3 = 0);
  7. double somme(double nb1 = 0, double nb2 = 0);
  8.  
  9. int main()
  10. {
  11.     cout << somme(2.5001) << endl << somme(1, 51) << endl;
  12.  
  13.     return 0;
  14. }
  15.  
  16. int somme(int nb1, int nb2, int nb3)
  17. {
  18.     return nb1 + nb2 + nb3;
  19. }
  20.  
  21. double somme(double nb1, double nb2)
  22. {
  23.     return nb1 + nb2;
  24. }

Dans le cout, le "somme(1, 51)" marche mais on ne sait pas par quelle fonction il est interprété. Sauf si on change ceci : "return nb1 + nb2 + nb3 + 10000;"
On voit que le code "somme(1, 51)" est lu par cette dernière fonction.

Pour ton code, [Hugo], le compilateur ne sait pas le faire et il te sort 6 jolies erreurs ^^

Sinon 20/20 (bah oui, chui un accroc à M@teo! ^^ )

Racketiciel - Langage SMS
Lien cassé >> MP!
Mes programmes et mes circuits TMN/TMNF << Donnez votre avis! :)
Le pédalo c'est du passé. ^^
État jabber : Image utilisateur
















Adresse de test (Pour les spams). Ne pas envoyer de message!
ofguiauzomxumwcaysqx@yahoo.fr
 
Hors ligne elmcherqui # Posté le 07/03/2008 à 16:34:44 - Ce membre a mis la note : 20
la vie est un programme
Avatar
Groupe : Membres
exellent tuto , rien a dire . tou s est tres claire et tres bien explique bravo .20/20

-La répétition est humaine , la récurrence Divine .
 
Hors ligne legende # Posté le 27/04/2008 à 13:45:42 - Ce membre a mis la note : 19
Groupe : Membres
J'ai trouvé le chapitre très bien expliqué, mais la j'ai un doute avec le QCM. La question 3 c'est est ce qu'on peut appelé cette fonction:
void ouvrirFenetre(const char *titre, int largeur = 250, int hauteur = 300, bool centree = false);

comme ceci:
ouvrirFenetre("Bienvenue", 200, 200);

J'ai répondu oui et apparement c'est non. Je comprends pas, on précise le titre, et les dimensions, et on ne mentionne pas juste le bool centree, qui est facultatif. De plus la fonction c'est un void, donc tel quel ca devrait être utilisable non?

Quoi qu'il en soit, j'continue les chapitres :D .

...
 
Hors ligne funduk # Posté le 18/06/2008 à 12:14:22 - Ce membre a mis la note : 18
Avatar
Groupe : Membres
Encore une fois, très bon tutoriel, avec ce magnifique schéma sur la cignature qui te coutera quelques points (Je suis vraiment, je suis vraiment PHENOMENAL, la la la la la ...)

┗┫━━ ┃ ━━ ┣┛ ┣┫
 ┃ ━━━━━  ┃┏┳┫┣┳┓ 
 ┗━━┳━┳━━┛ ┃    ┃ 
━━━━┃ ┃    ┗━┳┳━┛
( :p )
 
Hors ligne smilz # Posté le 16/11/2008 à 17:39:27 - Ce membre n'a pas mis de note
La vie est une blague
Avatar
Groupe : Membres
Je relisais le tuto comme ça, et je n'ai pas bien saisie la différence entre une macro préprocesseur et une fonction inline ? Quelle est la réelle différence ?

I can't believe that !
 

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 191 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0369s (0.0252s)