passer un objet a une fuction c est possible ? - C++ - Programmation
Marsh Posté le 23-07-2003 à 13:05:37
ReplyMarsh Posté le 23-07-2003 à 13:08:53
Ca fait combien de fois qu'on te dit de lire un bouquin/un cours online?
Marsh Posté le 23-07-2003 à 13:11:05
mais j ai des bouquins je veisn de leire la partie classe et j ai pas vu un truc qui ressemblai a ce que je demande.
une reponse d une ligne voir d un mot me suffirai
doi je placer le deck mydeck; au debut apres les includes ?
Marsh Posté le 23-07-2003 à 13:14:59
C'est EVIDENT que ton bouquin te dit comment faire ca, c'est le minimum
ma reponse : sors toi les doigts du cul
Marsh Posté le 23-07-2003 à 13:17:38
xiluoc a écrit : mais j ai des bouquins je veisn de leire la partie classe et j ai pas vu un truc qui ressemblai a ce que je demande. |
et la base tu l'as pas? Genre ke passage de paramètres à une fonction? ca y est pas dans ton bouquin???
Code :
|
Marsh Posté le 23-07-2003 à 13:17:53
deux solutions:
_ Tu abandonne la prog et tu passe à la couture
_ Tu prend ton bouquin, tu commence à la page une et tu le lie jusqu'au bout en essayant d'être attentif.
Bon si non pour être plus constructif: oui on peut passer des objets à une fonction, en général on fait ça par référence:
Code :
|
Edit: Merde j'ai fais mon ++Taz aujourd'hui
Edit2: Ha tien il a fini par arriver
Marsh Posté le 23-07-2003 à 13:19:30
y a des jours j'ai vraiment envie d'acheter un beretta...
Marsh Posté le 23-07-2003 à 13:23:16
...
j essayer des trucs du genre
void test(...., deck *x)
c le & .. desole je maitrise pas encore les pointeurs.
non je ne passerai pas a la couture
Marsh Posté le 23-07-2003 à 13:24:11
(Attention le iench vient du C et donc est pas trop bon en C++ )
Pourquoi passer une référence et pas un pointeur ?
Marsh Posté le 23-07-2003 à 13:24:36
xiluoc a écrit : ... |
ben je t'avouerai que je passerai par un pointeur moi.
Marsh Posté le 23-07-2003 à 13:26:40
tetedeiench a écrit : (Attention le iench vient du C et donc est pas trop bon en C++ ) |
depend de ton affaire. d'un point de vue perf c le meme code qui est generé donc pas de soucis de ce coté la.
La reference te garantie (enfin presque, en forcant on arive tjs a tout) que ce que tu recois est valide (envoyer un pointeur bidon est trivial, une reference foireuse moins)
Marsh Posté le 23-07-2003 à 13:27:00
et puis merde, vous avez apris le c++ comme ca sans faire derreur , hop je lis le bouquin d une traite ca y est c magique ...
et vu comment c est parti je risque d en poser beaucoup des questions jusqu au jours ou ce sera mon tour d aider les noob.
( )}
Marsh Posté le 23-07-2003 à 13:29:13
tetedeiench a écrit : (Attention le iench vient du C et donc est pas trop bon en C++ ) |
Pkoi, par ce que un pointeur peut être nul, une référence pointe tjrs sur un objet. En plus d'un point de vue syntaxe on bosse sur une référence comme si on travaillait directement sur l'objet qu'elle désigne ce qui peut être un plus pour certain.
Marsh Posté le 23-07-2003 à 13:29:35
xiluoc a écrit : et puis merde, vous avez apris le c++ comme ca sans faire derreur , hop je lis le bouquin d une traite ca y est c magique ... |
Non, mais au moins on commence à chercher un peu dans le bouquin avant de demander, non?
Marsh Posté le 23-07-2003 à 13:30:54
chrisbk a écrit : |
Effectivement quand ça arrive c vraiment que le mec à cherché la merde.
Marsh Posté le 23-07-2003 à 13:31:09
Citation : En plus d'un point de vue syntaxe on bosse sur une référence comme si on travaillait directement sur l'objet qu'elle désigne ce qui peut être un plus pour certain. |
je dois avouer ne tjs pas avoir bien cpris l'interet de l'operateur "->" en C.
Il levait quel ambiguité par rapport au "." ?
Pourquoi l'a t'on introduit ?
Marsh Posté le 23-07-2003 à 13:31:13
LetoII a écrit : |
Ok, je comprends...
Mais bon, je sais pas pourquoi, on m'a tjs répété que les références c'était MAL, alors
Non, disons que je suis habitué aux pointeurs donc ca peut aller
Marsh Posté le 23-07-2003 à 13:32:05
evidemment que si t'as des questions a poser lors de ton apprentissage on te donnera un coup de main pour t'aider a comprendre mais poser des questions de base alors que les reponses se trouvent dans ton bouquin c'est un peu fort.
Et n'oublie pas de faire une recherche avant de poser une question car etant donne que ce sont des questions de base, le forum contient deja surement beaucoup de reponses
Marsh Posté le 23-07-2003 à 13:32:41
chrisbk a écrit :
|
ben faire monobjet->truc , c'est pareil que (*monobjet).truc .
Car si tu le mets pas, a chaque fois, je me demande si l'étoile s'applique comme :
(*monobjet).truc ou *(monobjet.truc) quand tu l'écris *monobjet.truc .
Donc j'utilise ->, c'est plus sur et "parlant".
Marsh Posté le 23-07-2003 à 13:33:12
skeye a écrit : |
je cherche un minimum avant d eposer es questions vu qu un forum c est rarement une reponse imediate. (bien que )
1. index de mon bouquin chapitre class feuilleter en vitesse a la recherche d example
2. google : pass object to function
Marsh Posté le 23-07-2003 à 13:35:07
chrisbk a écrit :
|
classe toto
int entier;
float flottant;
toto exemple_toto;
exemple_toto.entier = 5;
toto *exemple_prt_toto = new (toto);
exemple_ptr_toto->entier = 5;
Marsh Posté le 23-07-2003 à 13:35:54
tetedeiench a écrit : |
+1 pour les pointeurs...j'arrive pas à m'en décrotter...
Et perso je pense qu'un débutant peut être dérouté par 2 fonctions
void test(type &obj) et void test2(type obj) ayant exactement la même implémentation et ne faisant pas tout à fait la même chose, non?
Marsh Posté le 23-07-2003 à 13:35:55
LetoII a écrit : |
pas vraiment, tu peux avoir des cas tout a fait balot
Code :
|
Marsh Posté le 23-07-2003 à 13:37:33
chrisbk a écrit :
|
Ben c pas le même cadre d'utilisation en C:
Code :
|
Spas tt à fait le même concept derrière d'où les opérateurs différent (enfin c mon avis perso après faut poser la questino à ceux qu'on fait le language)
Une référence en C++ c comme si tu manipulais l'objet lui même, d'ailleur &ref renvoie l'adresse de l'objet référencé par ref, &p r'envoie l'adresse du pointeur, donc la zone mémoire où est stocké l'adresse de l'objet. Spas tt à fait le même concept.
Marsh Posté le 23-07-2003 à 13:37:44
je sais a quoi sert -> mais pas pkoi il a ete necessaire de l'introduire en C
Marsh Posté le 23-07-2003 à 13:38:03
skeye a écrit : |
ben la t'es bien con...
Code :
|
recopier le code, c'est beurk
Marsh Posté le 23-07-2003 à 13:39:01
leto : Bah le compilo sachant que p est de type pointeur il pourrait tout aussi bien remplacer mon "->" par un "(*p)." sans que g quelque chose a lui dire.
c ca que je capte pas, pkoi s'encombrer d'un operateur en plus ?
Marsh Posté le 23-07-2003 à 13:39:29
chrisbk a écrit : je sais a quoi sert -> mais pas pkoi il a ete necessaire de l'introduire en C |
Parce que (*monobjet).truc c'est chiant a taper et ambigu a la longue.
Imagine des objets d'objets d'objets...
Marsh Posté le 23-07-2003 à 13:40:05
tetedeiench a écrit : |
C moi qui explique mal ou vous voulez pas comprendre ?
Marsh Posté le 23-07-2003 à 13:40:39
chrisbk a écrit : leto : Bah le compilo sachant que p est de type pointeur il pourrait tout aussi bien remplacer mon "->" par un "(*p)." sans que g quelque chose a lui dire. |
c'est plus lisible
Marsh Posté le 23-07-2003 à 13:40:55
ReplyMarsh Posté le 23-07-2003 à 13:41:16
chrisbk a écrit :
|
C ce que je dit, il a cherché la merde, dans la fonction qui reçoit un pointeur il aurait du s'assurer qu'il n'était pas null.
Marsh Posté le 23-07-2003 à 13:41:18
chrisbk a écrit : |
C'est toi qui lit pas nos posts.
On te dit que le -> est beaucoup plus pratique et lisible a l'usage.
Marsh Posté le 23-07-2003 à 13:41:29
lorill a écrit :
|
Bah c'était juste un pb dans l'absolu, pas un truc qui se fait vraiment...J'ai juste l'impression qu'un débutant à plus de mal à différencier correctement les 2 avec les références qu'avec les pointeurs...
Marsh Posté le 23-07-2003 à 13:42:26
je la retente
toto *a;
...
a.membre = tagada; //echec a la compilation
par contre
a->membre = tagada; //OK.
Maintenant, pkoi "." produit une erreur de syntaxe ? La est ma question. Quel est l'interet de "->" ?
Marsh Posté le 23-07-2003 à 13:43:41
ou, si vous preferez, qu'est ce qui empeche le compilo, lorsqu'il recontre :
a.membre = ...;
de le remplacer tout seul comme un grand par :
a->membre = ...;
?
Marsh Posté le 23-07-2003 à 13:44:34
chrisbk a écrit : je la retente |
ok, en fait tu te demandes pourquoi ils ont pas pris '.' a la fois dans le cas normal et dans le cas pointeur, j'ai bon ?
chrisbk a écrit : |
te rappeler que ta variable est un pointeur
Marsh Posté le 23-07-2003 à 13:03:23
example
comment faire ?