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

  FORUM HardWare.fr
  Programmation
  C++

  passer un objet a une fuction c est possible ?

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Précédente
Auteur Sujet :

passer un objet a une fuction c est possible ?

n°465653
xiluoc
un pc pour les unirs ....
Posté le 23-07-2003 à 13:03:23  profilanswer
 

example  
 

Code :
  1. #include "deck.h"
  2. void test (int a, ????)
  3. {
  4. et la je voudrai utiliser le mydeck.
  5. genre mydeck.isempty();
  6. }
  7. int main ()
  8. {
  9. deck mydeck;
  10. blablabla
  11. deck.shuffle();
  12. ect...
  13. }

 
 
comment faire ?  :hello:

mood
Publicité
Posté le 23-07-2003 à 13:03:23  profilanswer
 

n°465654
chrisbk
-
Posté le 23-07-2003 à 13:04:28  profilanswer
 

is this intented to be a joke ?

n°465655
lorill
Posté le 23-07-2003 à 13:05:37  profilanswer
 

chrisbk a écrit :

is this intented to be a joke ?

hélas non :fouyaya:

n°465658
skeye
Posté le 23-07-2003 à 13:08:53  profilanswer
 

:pfff:  
Ca fait combien de fois qu'on te dit de lire un bouquin/un cours online? :sarcastic:

n°465660
xiluoc
un pc pour les unirs ....
Posté le 23-07-2003 à 13:11:05  profilanswer
 

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  ?


Message édité par xiluoc le 23-07-2003 à 13:11:54
n°465665
chrisbk
-
Posté le 23-07-2003 à 13:14:59  profilanswer
 

C'est EVIDENT que ton bouquin te dit comment faire ca, c'est le minimum
 
ma reponse : sors toi les doigts du cul

n°465666
skeye
Posté le 23-07-2003 à 13:17:38  profilanswer
 

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.
 
une reponse d une ligne voir d un mot me suffirai
doi je placer le deck mydeck; au debut apres les includes  ?


et la base tu l'as pas? Genre ke passage de paramètres à une fonction? ca y est pas dans ton bouquin??? :sarcastic:  

Code :
  1. #include "deck.h"
  2.  
  3. void test (int a, deck *pDeck)
  4. {
  5.   blablabla;
  6.   pDeck->majoliefonctionmembrequimodifiemondeckenplus();
  7.   blablabla;
  8. }
  9.  
  10. int main ()
  11. {
  12.     deck Mydeck;
  13.     Mydeck.shuffle();
  14.     test(2, &mydeck);
  15. }


Message édité par skeye le 23-07-2003 à 14:36:03
n°465667
LetoII
Le dormeur doit se réveiller
Posté le 23-07-2003 à 13:17:53  profilanswer
 

:ouch: 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 :
  1. void maFonction(MaClass &monObjet)
  2. {
  3.   //Mon code.
  4. }


 
Edit: Merde j'ai fais mon ++Taz aujourd'hui :D
 
Edit2: Ha tien il a fini par arriver :D


Message édité par LetoII le 23-07-2003 à 13:21:35

---------------
Le Tyran
n°465668
Taz
bisounours-codeur
Posté le 23-07-2003 à 13:19:30  profilanswer
 

y a des jours j'ai vraiment envie d'acheter un beretta...

n°465671
xiluoc
un pc pour les unirs ....
Posté le 23-07-2003 à 13:23:16  profilanswer
 

...
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  
 :whistle:

mood
Publicité
Posté le 23-07-2003 à 13:23:16  profilanswer
 

n°465672
Tetedeienc​h
Head Of God
Posté le 23-07-2003 à 13:24:11  profilanswer
 

(Attention le iench vient du C et donc est pas trop bon en C++ )
 
Pourquoi passer une référence et pas un pointeur ?

n°465673
Tetedeienc​h
Head Of God
Posté le 23-07-2003 à 13:24:36  profilanswer
 

xiluoc a écrit :

...
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  
 :whistle:  


 
ben je t'avouerai que je passerai par un pointeur moi.

n°465674
chrisbk
-
Posté le 23-07-2003 à 13:26:40  profilanswer
 

tetedeiench a écrit :

(Attention le iench vient du C et donc est pas trop bon en C++ )
 
Pourquoi passer une référence et pas un pointeur ?


 
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)
 
 

n°465675
xiluoc
un pc pour les unirs ....
Posté le 23-07-2003 à 13:27:00  profilanswer
 

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.
( :whistle: )}

n°465676
LetoII
Le dormeur doit se réveiller
Posté le 23-07-2003 à 13:29:13  profilanswer
 

tetedeiench a écrit :

(Attention le iench vient du C et donc est pas trop bon en C++ )
 
Pourquoi passer une référence et pas un pointeur ?


 
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.


---------------
Le Tyran
n°465678
skeye
Posté le 23-07-2003 à 13:29:35  profilanswer
 

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?

n°465680
LetoII
Le dormeur doit se réveiller
Posté le 23-07-2003 à 13:30:54  profilanswer
 

chrisbk a écrit :


 
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)
 
 
 


 
Effectivement quand ça arrive c vraiment que le mec à cherché la merde.


---------------
Le Tyran
n°465681
chrisbk
-
Posté le 23-07-2003 à 13:31:09  profilanswer
 

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 ?

n°465682
Tetedeienc​h
Head Of God
Posté le 23-07-2003 à 13:31:13  profilanswer
 

LetoII a écrit :


 
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.


 
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 :D
 
Non, disons que je suis habitué aux pointeurs donc ca peut aller ;)

n°465684
polo021
Posté le 23-07-2003 à 13:32:05  profilanswer
 

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

n°465685
Tetedeienc​h
Head Of God
Posté le 23-07-2003 à 13:32:41  profilanswer
 

chrisbk a écrit :

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 ?
 


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

n°465686
xiluoc
un pc pour les unirs ....
Posté le 23-07-2003 à 13:33:12  profilanswer
 

skeye a écrit :


Non, mais au moins on commence à chercher un peu dans le bouquin avant de demander, non?


je cherche un minimum avant d eposer es questions vu qu un forum c est rarement une reponse imediate. (bien que :whistle: )
 
1. index de mon bouquin chapitre class feuilleter en vitesse a la recherche d example
2. google : pass object to function
 

n°465687
polo021
Posté le 23-07-2003 à 13:35:07  profilanswer
 

chrisbk a écrit :

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 ?
 


classe toto
 int entier;
 float flottant;
 
 
toto exemple_toto;
exemple_toto.entier = 5;
 
toto *exemple_prt_toto = new (toto);
exemple_ptr_toto->entier = 5;
 
[:sinclaire]

n°465690
skeye
Posté le 23-07-2003 à 13:35:54  profilanswer
 

tetedeiench 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 :D
 
Non, disons que je suis habitué aux pointeurs donc ca peut aller ;)


+1 pour les pointeurs...j'arrive pas à m'en décrotter... [:skeye]
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?

n°465691
chrisbk
-
Posté le 23-07-2003 à 13:35:55  profilanswer
 

LetoII a écrit :


 
Effectivement quand ça arrive c vraiment que le mec à cherché la merde.


 
pas vraiment, tu peux avoir des cas tout a fait balot :D
 

Code :
  1. void pouet()
  2. {
  3. int *tagada = NULL;
  4. truc(tagada);
  5. }
  6. void truc (int *bidule)
  7. {
  8. machin(*bidule);
  9. }
  10. void machin (int &a)
  11. {
  12. a = 20; // [:ciler]
  13. }


 
 

n°465693
LetoII
Le dormeur doit se réveiller
Posté le 23-07-2003 à 13:37:33  profilanswer
 

chrisbk a écrit :

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 ?
 


 
Ben c pas le même cadre d'utilisation en C:
 

Code :
  1. typedef struc maStruct
  2. {
  3. int x;
  4. int y;
  5. } MaStruct;
  6. MaStruct s;
  7. MaStruct *p;
  8. p =&s;
  9. s.x;/*Tu récupère le premier int à l'adresse de s*/
  10. p->y;/*Equivalent à (*p).x tu va à l'adresse que contien p et tu y prend le premier int*/


 
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.


---------------
Le Tyran
n°465694
chrisbk
-
Posté le 23-07-2003 à 13:37:44  profilanswer
 

je sais a quoi sert -> mais pas pkoi il a ete necessaire de l'introduire en C :O
 

n°465695
lorill
Posté le 23-07-2003 à 13:38:03  profilanswer
 

skeye a écrit :


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?


ben la t'es bien con...
 

Code :
  1. void test(type &obj)
  2. {
  3.    //ton implementation
  4.    //...
  5. }
  6. void test2(type obj)
  7. {
  8.   test(obj);
  9. }


 
recopier le code, c'est beurk


Message édité par lorill le 23-07-2003 à 13:38:59
n°465697
chrisbk
-
Posté le 23-07-2003 à 13:39:01  profilanswer
 

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 ?

n°465699
Tetedeienc​h
Head Of God
Posté le 23-07-2003 à 13:39:29  profilanswer
 

chrisbk a écrit :

je sais a quoi sert -> mais pas pkoi il a ete necessaire de l'introduire en C :O
 
 


 
Parce  que (*monobjet).truc c'est chiant a taper et ambigu a la longue.
 
Imagine des objets d'objets d'objets...

n°465700
Tetedeienc​h
Head Of God
Posté le 23-07-2003 à 13:39:58  profilanswer
 

beaucoup plus simple et lisible a la longue !

n°465701
chrisbk
-
Posté le 23-07-2003 à 13:40:05  profilanswer
 

tetedeiench a écrit :


 
Parce  que (*monobjet).truc c'est chiant a taper et ambigu a la longue.
 
Imagine des objets d'objets d'objets...


 
C moi qui explique mal ou vous voulez pas comprendre ?

n°465703
polo021
Posté le 23-07-2003 à 13:40:39  profilanswer
 

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 ca que je capte pas, pkoi s'encombrer d'un operateur en plus ?


c'est plus lisible[:sinclaire]

n°465706
lorill
Posté le 23-07-2003 à 13:40:55  profilanswer
 

chrisbk a écrit :


C moi qui explique mal ou vous voulez pas comprendre ?


le 1.

n°465707
LetoII
Le dormeur doit se réveiller
Posté le 23-07-2003 à 13:41:16  profilanswer
 

chrisbk a écrit :


 
pas vraiment, tu peux avoir des cas tout a fait balot :D
 

Code :
  1. void pouet()
  2. {
  3. int *tagada = NULL;
  4. truc(tagada);
  5. }
  6. void truc (int *bidule)
  7. {
  8. machin(*bidule);
  9. }
  10. void machin (int &a)
  11. {
  12. a = 20; // [:ciler]
  13. }


 
 
 


 
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.
 


---------------
Le Tyran
n°465708
Tetedeienc​h
Head Of God
Posté le 23-07-2003 à 13:41:18  profilanswer
 

chrisbk a écrit :


 
C moi qui explique mal ou vous voulez pas comprendre ?
 


 
C'est toi qui lit pas nos posts.
 
On te dit que le -> est beaucoup plus pratique et lisible a l'usage.

n°465709
skeye
Posté le 23-07-2003 à 13:41:29  profilanswer
 

lorill a écrit :


ben la t'es bien con...
 

Code :
  1. void test(type &obj)
  2. {
  3.    //ton implementation
  4.    //...
  5. }
  6. void test2(type obj)
  7. {
  8.   test(obj);
  9. }


 
recopier le code, c'est beurk


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

n°465710
chrisbk
-
Posté le 23-07-2003 à 13:42:26  profilanswer
 

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

n°465715
chrisbk
-
Posté le 23-07-2003 à 13:43:41  profilanswer
 

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 = ...;  
 
?

n°465716
lorill
Posté le 23-07-2003 à 13:44:34  profilanswer
 

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 :


Quel est l'interet de "->" ?  


te rappeler que ta variable est un pointeur

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Précédente

Aller à :
  FORUM HardWare.fr
  Programmation
  C++

  passer un objet a une fuction c est possible ?

 

Sujets relatifs
Initialisation d'un objet de type TOracleDataSet (Delphi - DOA)[PHP] passer une fonction dans une action d'un form
Objet WebBrowser et imprimante[HTML/JS] Evenement sur zone de texte déclenche un checked possible ??
VB.NET : Objet cache et mise à jourpasser des variables de formulaire d'une frame à une autre
question sur enum et classe [possible ou pas ?]2 styles CSS à la fois, c possible ? comment on fait ?
plusieur outer join, c'est possible????[PHP] méthodologie pour passer des variables d'une page a l'autre
Plus de sujets relatifs à : passer un objet a une fuction c est possible ?


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