CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Constructeurs / Destructeurs

ChaosStrike
ChaosStrike
Niveau 2
21 juillet 2005 à 23:18:52

:salut:

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 :-(

:merci:

JeanYvesYves
JeanYvesYves
Niveau 10
22 juillet 2005 à 09:33:54

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*)

Chaos_Clad
Chaos_Clad
Niveau 10
22 juillet 2005 à 14:04:15

Merci j´ai compris :) Quant à mon niveau avec les pointeurs, ben il y a juste que j´ai toujours pas compris l´utilité :rire: 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 ? :)

:merci:

JeanYvesYves
JeanYvesYves
Niveau 10
22 juillet 2005 à 14:51:54

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();

Chaos_Clad
Chaos_Clad
Niveau 10
22 juillet 2005 à 18:04:22

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 :-(

Bigloo
Bigloo
Niveau 10
22 juillet 2005 à 18:07:04

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.

Chaos_Clad
Chaos_Clad
Niveau 10
22 juillet 2005 à 18:17:18

Nan, Bigloo, I :coeur C :)
Sinon, ben je pense pas que ça viendra, il faut que je me force à les utiliser quoi…

inmilinpic
inmilinpic
Niveau 5
22 juillet 2005 à 19:33:14

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é .
@+

Chaos_Clad
Chaos_Clad
Niveau 10
22 juillet 2005 à 20:40:51

Ok j´ai bien compris, merci :)

Kilyn_
Kilyn_
Niveau 10
23 juillet 2005 à 15:28:13

" 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é) " :d) 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). :sarcastic:

Mouuh
Mouuh
Niveau 6
23 juillet 2005 à 16:05:29

" 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 !

MrGoTo
MrGoTo
Niveau 8
24 juillet 2005 à 00:06:13

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 :)

Chaos_Clad
Chaos_Clad
Niveau 10
24 juillet 2005 à 00:30:17

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 :)

Ptival
Ptival
Niveau 10
24 juillet 2005 à 01:03:20

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 :lol:
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...)

Ptival
Ptival
Niveau 10
24 juillet 2005 à 01:05:25

D´ailleurs je viens d´apprendre ce à quoi servait le " ->" grâce à ce topic :lol:

Preuve que des fois on peut complètement passer outre quelque chose :)

/ me qui utilisais ( *pointeur).membre :lol:

inmilinpic
inmilinpic
Niveau 5
24 juillet 2005 à 13:28:11

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 :sarcastic: , 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...
@++

Mouuh
Mouuh
Niveau 6
24 juillet 2005 à 15:09:18

" 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.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment