Quelqu´un peut-il m´expliquer ce qu´est un constructeur, et donc un destructeur, au sein d´une classe ? J´ai beau lire et relire plusieurs tutos, je saisis pas
![]()
Un constructeur est lancé lorsque tu crées ton objet, le destructeur lorsque tu le détruis ?
Quel est ton niveau en C/C++ avec les pointeurs ?
Un exemple simple, c´est l´exemple d´une classe string :
quand tu construis une " string" tu passes un char* : donc une chaine.
Le constructeur va copier cette chaine dans la classe, et le destructeur la libérer.
Ainsi :
string s("plouf");
va appeler le constructeur
string::string(char*)
Merci j´ai compris
Quant à mon niveau avec les pointeurs, ben il y a juste que j´ai toujours pas compris l´utilité
Tout le monde me dit que c´est fabuleux mais bon… Tu voudrais pas aussi m´expliquer l´opérateur " ->" s´il te plaît ?
![]()
si tu ne connais pas trop les pointeurs, tu auras du mal avec l´opérateur ->
en gros c´est simple :
tu as 2 façon de creer une classe, soit par une classe statique :
maclasse M;
soit dynamique ( un pointeur dessus)
maclasse *P;
pour la premriere ( M), tu fais :
M.fonction();
jusque la c´est bon ?
Bon, pour la deuxieme, comme c´est un pointeur, il faut faire :
( *P).fonction();
ça, ça marche. Tu vois le truc ? bon.
Or, mettre les parenthese, c´est chiant. Si tu ne les mets pas, ça ne fait pas ce que tu demandes.
Donc soit tu met plein de ( *P).fonction() dans ton code ( tres lourd)
soit tu mets :
P->fonction();
qui est EXACTEMENT LA MEME CHOSE que :
( *P).fonction();
Ok j´ai pigé, il y a juste que je vois pas l´intêret de mettre un pointeur plutôt qu´une variable directe, style :
int i = 0;
int *p = &
p++;
Là je vois vraiment pas à quoi ça sert ![]()
Tiens, tu te poses les mêmes questions que moi y´a deux ans.
La réponse est : c´est comme ça que fonctionne ton ordinateur, et ce n´est pas une invention farfelue des créateurs du C. Y´a pas de question à se poser quoi. Tu peux éventuellement changer de langage.
Nan, Bigloo, I :coeur C ![]()
Sinon, ben je pense pas que ça viendra, il faut que je me force à les utiliser quoi…
les pointeurs ca te sert à maitriser la mémoire :
imaginez un jeu récent ( exemple le plus parlant a mon avis):
Dans la mémoire vive de l´ordi du joueur ( disons 512Mo) il stocke toutes les données : tel ennemi est a telle place, tel truc possede tant de points de vie, cette image on la charge pour....
etc etc...
C´est ce que tu fais automatiquement quand tu crées des variables normales ( ex = int i;).
Mais au bout d´un certain temps, avec toutes ces variables, la mémoire vive se remplit. Le jeu reste figé, plus aucune nouveauté ne peut apparaitre.
Les pteurs ce ne sont pas des variables qui contiennent une valeur, mais des variables qui contient < une adresse mémoire.
A cette adresse mémoire peut se trouver une variable. ( ou autrement dit, on peut stockezr 1 variable dans cette adresse mémoire).
Ainsi, lorque tu n´as plus besoin d´une variable ( les points de vie du monstre qui est mort, t´en as plus rien a faire), avec les pointeurs, tu peux effacer ce qu´il y a à l´adresse mémoire que renferme le pointeur.
C´est a dire la variable.
D´ou gain de place dans la mémoire puisqu´effacage de données. On peut y mettre de nouvelles choses, et/ou eviter que ca bloque trop / rame trop.
Voila en gros, expliqué rapidement ( mais avec un paté de texte qd même) c´est ca.
PS : je m´acharne a répeter ca mais ceux qui ne comprennent pas les methodes de programmation ( surtout avec des tutos clairs) ne sont PAS faits pour programmer ( sans aucune méchanceté)
J´espere quand meme que je t´ai aidé .
@+
Ok j´ai bien compris, merci ![]()
" PS : je m´acharne a répeter ca mais ceux qui ne comprennent pas les methodes de programmation ( surtout avec des tutos clairs) ne sont PAS faits pour programmer ( sans aucune méchanceté) "
J´y comprends que dalle au pointeur ( bien qu´on me l´ai expliqué deux fois à l´oral) et pourtant je code ( c´est mon métier normal). ![]()
" PS : je m´acharne a répeter ca mais ceux qui ne comprennent pas les methodes de programmation ( surtout avec des tutos clairs) ne sont PAS faits pour programmer ( sans aucune méchanceté) "
Je m´acharne à répéter cela mais les personnes qui débitent ce genre de conneries ne sont PAS fait pour réfléchir. ( sans aucune méchanceté)
Bon alors petit rappel pour ceux qui ne le savent pas. La connaissance n´est pas, jusqu´à preuve du contraire, innée. Elle est acquise.
Alors sachez qui si vous ne comprenez pas quelque chose ( même avec des tutoriaux simples), n´abandonnez pas, recommencez encore et encore.
L´intelligence est plus grande chez certaines personnes que d´autres, nous ne sommes pas du tout égaux. Cependant, en travaillant, rien ne vous empêche d´atteinde des hauts niveaux dans un domaine sans pour autant avoir été le plus gaté côté intelligence. Donc, je me répète, si vous aimez, n´abandonnez pas !
Et moi je confirme les dire de Mouuh.
Lorsque on apprend un premier langage on peut le clouer en deux semaines. Personnelement j´ai recommencé et recommencé à apprendre pendant près d´un an et demi. Mais un jour j´ai trouver la bonne motivation et j´ai vraiment progresser. Là c´est pareil avec directX, j´ai fait pleins d´essais pour m´y mettre et ça bloque mais j´y arriverais un jour, j´y arriverais ![]()
Moi le C++ ça fait un peu plus de deux ans que j´y suis et je n´ai eu le déclic qu´il y a très peu ![]()
Je m´élève contre les dires de inmilinpic comme tous mes p´tits amis
Seule la motivation est votre moteur
Perso j´ai commencé la programmation il ya un an...Mon premier cours sur les pointeurs était celui de Christian Casteyde, et je vous avoue tout j´ai rien compris ![]()
Puis j´ai farfouillé, j´ai fait les tutos sur la SDL de JYY...J´ai appris d´abord les classes ( je trouve que ça se conçoit mieux que les pointeurs)
Puis à un moment, on se dit qu´on aurait besoin de pouvoir créer un truc, le détruire, en créer un autre...La notion de pointeur m´est arrivée par necessité ![]()
Ensuite tout devient plus évident !
Ah, quand je faisais un char*, ça voulait dire que j´avais un pointeur vers des char ! Voilà pourquoi j´avais eu tel problème ! Voilà pourquoi ce foutu \0 dont l´utilité me paraissait inexplicable doit être la
Et hop, le schmilblick avance peu à peu
Et à chaque fois j´avance comme ça
Je tombe sur un truc :
Oula c´est dur...
J´essaie de le comprendre, je saisis, je vois pas l´utilité
Je passe à la suite...et là je me dis que ce truc d´avant c´était pas si con pour ce truc d´après...
Le web ( ou un livre) permet de retourner en arrière, ce n´est pas un film...C´est là toute l´utilité !
Après ya des cas où on ne peut pas " sauter", et là, il faut savoir activer ses petits neurones, et puis l´aide est utile ( forum, chat...)
D´ailleurs je viens d´apprendre ce à quoi servait le " ->" grâce à ce topic
Preuve que des fois on peut complètement passer outre quelque chose
/ me qui utilisais ( *pointeur).membre ![]()
bon je vois que j´ai crée un petit malentendu qui a soulevé tout le monde et que je vais essayer de résoudre...
Je suis entièrement d´accord que c´est la motivation qui est à la base de tout apprentissage en prog.
Ce que j´ai voulu dire dans mon
PS:ceux qui ne comprennent pas les methodes de programmation ( surtout avec des tutos clairs) ne sont PAS faits pour programmer
ca s´adresse aux moutons qui veulent programmer sur un coup de tete pour faire comme les autres, ou pour creer un beau truc, impressionner. Mais ilfaut plus de temps qu´ils ne croient, ils vont se planter, ne pas comprendre, demander sans arret de l´aide. Ceux-la ne sont pas faits pour programmer. Ce n´est pas direstement parce qu´ils ne comprennent pas ou parce qu´ils sont betes, comme.
Par exemple, il y a une différence entre: " j´arrive pas à faire marcher le c++ pour faire un jeu" ( copyright CDJ)
et par exemple MrGoto:
" Là c´est pareil avec directX, j´ai fait pleins d´essais pour m´y mettre et ça bloque mais j´y arriverais un jour, j´y arriverais "
On sent le gout de la prog, la perseverance et la motivation chez l´un mais PAS chez l´autre
, et au moins, celui-ci ifnira par y arriver, mais pas le premier, il n´est pas fait pour programmer. ( c´est mon point de vue après tout, rien ne vous force à y adherer)
Ce n´est pas vraiment une question d´intelligence si on n´y arrive pas, mais de tout ce qui a été évoqué.
Voila, j´ai ( j´espere) réparé le malentendu.
" Je m´acharne à répéter cela mais les personnes qui débitent ce genre de conneries ne sont PAS fait pour réfléchir. ( sans aucune méchanceté) "
-> Ca, ça ne vole pas plus haut que ce que tu as compris de mon PS:...
sur ce...
@++
" Ca, ça ne vole pas plus haut que ce que tu as compris de mon PS:"
En effet, et c´était précisemment le but. Montrer toute la bêtise de ce genre de phrase.
Mais comme il s´agit d´un malentendu, je retire bien évidemment ce que j´ai dit à ton sujet.