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

  FORUM HardWare.fr
  Programmation
  C++

  Passage Java/C++ petite question :)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Passage Java/C++ petite question :)

n°1569217
the_phoeni​x2
Posté le 03-06-2007 à 03:13:33  profilanswer
 

Bonjour,

 


Alors voilà j'ai l'habitude de programmer en java et je me suis mis au c++ depuis quelques temps, tout se passait bien jusqu'à aujourd'hui.

 

Voilà en java quand je déclare une variable de type Object  je fais ceci : Object o;

 

Alors en C++, je pensais qu'il suffisait de faire Object* o seulement j'ai le droit a une erreur

 

"...Type name expected
 ...Declaration missing"

 

Et j'avoue que je ne comprends pas ^^

 

Donc si quelqu'un pouvait m'éclairer ca serait sympa :)

 

Pour info j'utilise le compilo Borland C++ 5.5 ;)


Message édité par the_phoenix2 le 03-06-2007 à 03:15:10
mood
Publicité
Posté le 03-06-2007 à 03:13:33  profilanswer
 

n°1569224
Joel F
Real men use unique_ptr
Posté le 03-06-2007 à 09:10:03  profilanswer
 

Bah Object c'est pas une classe de base du C++ ... [:dawa]

 

En outre, en C++ tu dois gérer ta mémoire toi même - pas de GC-
donc si tu declares un Object* o, il va falloir l'instancier via new :

 
Code :
  1. Object* o = new Object;
 

Mais, en général, une déclaration simple suffit :

 
Code :
  1. Object o;
 

Je te conseil de te renseigner sur la notion de pointeur et la gestion de la mémoire en C++, la difference en allocation dynamique et statique ainsi que le modèle objet sous-jacent de C++ qui est radicalement différent de celui de java (comprendre, y en a pas).

 

Ah et utilises un vrai compilo genre gcc (mingw si tu es sous windows) et pas cette bouse de Borland.

Message cité 1 fois
Message édité par Joel F le 03-06-2007 à 09:11:12
n°1569244
the_phoeni​x2
Posté le 03-06-2007 à 12:06:37  profilanswer
 

Joel F a écrit :

Bah Object c'est pas une classe de base du C++ ... [:dawa]

 

En outre, en C++ tu dois gérer ta mémoire toi même - pas de GC-
donc si tu declares un Object* o, il va falloir l'instancier via new :

 
Code :
  1. Object* o = new Object;
 

Mais, en général, une déclaration simple suffit :

 
Code :
  1. Object o;
 

Je te conseil de te renseigner sur la notion de pointeur et la gestion de la mémoire en C++, la difference en allocation dynamique et statique ainsi que le modèle objet sous-jacent de C++ qui est radicalement différent de celui de java (comprendre, y en a pas).

 

Ah et utilises un vrai compilo genre gcc (mingw si tu es sous windows) et pas cette bouse de Borland.

 

Pour l'instanciation j'ai pas vraiment besoin puisqu'en fait l'object est un attribut de ma classe qui sera initialisé via le constructeur qui prend un objet en parametre.

 

Bah en fait les pointeurs et la gestion de mémoire en C++ je connais mais là même si je fais

Code :
  1. Object o;

il me sort cette erreur.

 

Pour le compilo, hum j'ai pas le choix ^^ et c'est vrai qu'il est merdique mais bon je suis en stage et j'arrive sur un projet déjà existant qui a toujours été compilé avec Borland... :(

 

Donc en gros ceci devrait marcher :

Code :
  1. class A
  2. {
  3.      private :
  4.         Object obj;
  5.      public :
  6.         A(Object o);
  7. };
  8. A::A(Object o){
  9.     obj = o;
  10. }
 

Et pourtant chez moi ca pose problème :(

 

Et là c'est quand j'utilise les pointeurs ^^ :
http://img522.imageshack.us/img522/7888/testobjpk4.th.jpg

Message cité 2 fois
Message édité par the_phoenix2 le 03-06-2007 à 12:28:36
n°1569247
zapan666
Tout est relatif
Posté le 03-06-2007 à 12:31:32  profilanswer
 

the_phoenix2 a écrit :


Donc en gros ceci devrait marcher :


non, la classe Object n'existe pas.


---------------
my flick r - Just Tab it !
n°1569258
Joel F
Real men use unique_ptr
Posté le 03-06-2007 à 12:58:24  profilanswer
 

the_phoenix2 a écrit :

Pour l'instanciation j'ai pas vraiment besoin puisqu'en fait l'object est un attribut de ma classe qui sera initialisé via le constructeur qui prend un objet en parametre.

 

On vient de te dire que Object n'existe pas en C++ :o

 

zut : grillaid


Message édité par Joel F le 03-06-2007 à 12:58:34
n°1569264
the_phoeni​x2
Posté le 03-06-2007 à 13:29:13  profilanswer
 

erff oki, j'avais rien compris encore, dslé ^^

 

Mais alors comment puis je faire parce que j'utilisais un object pour être generique et pouvoir y mettre n'importe quoi et là je vois pas trop comment faire ^^


Message édité par the_phoenix2 le 03-06-2007 à 13:31:12
n°1569265
zapan666
Tout est relatif
Posté le 03-06-2007 à 13:31:36  profilanswer
 

naïvement, je dirais  

Code :
  1. void *obj


mais bon, c'est le genre de truc qu'on fait en C, il y a sûrrement quelque chose de mieux en C++  


---------------
my flick r - Just Tab it !
n°1569267
Joel F
Real men use unique_ptr
Posté le 03-06-2007 à 13:33:37  profilanswer
 

fais une classe générique ou utilise boost::variant ou utilise un schema polymorphe à base d'héritage de classe selon tes besoins.
 
Et je réitére mon commentaire N°1 : apprends à faire du C++ et oublie JAVA

n°1569275
the_phoeni​x2
Posté le 03-06-2007 à 13:40:13  profilanswer
 

ouki merci :)
 
Bah j'essai doucement de passer au C++, mais le passage Java -> C++ est pas forcément evident sachant que Java nous prends pas mal par la main ^^
 
Je regrette parfois de ne pas avoir commencer par le C++, ca aurait été sans doute plus logique mais j'ai pas vraiment eu le choix :p

n°1569285
boulgakov
Posté le 03-06-2007 à 14:33:03  profilanswer
 

the_phoenix2 a écrit :

ouki merci :)
 
Bah j'essai doucement de passer au C++, mais le passage Java -> C++ est pas forcément evident sachant que Java nous prends pas mal par la main ^^
 
Je regrette parfois de ne pas avoir commencer par le C++, ca aurait été sans doute plus logique mais j'ai pas vraiment eu le choix :p


 
Je ne connais pas ton projet, mais de toutes façons il est improbable qu'utiliser un Object serait une bonne idée même si tu étais en Java.
 
Edit : J'ai jeté un coup d'oeil à ta capture d'écran : tu fais juste un test vite fait "hors projet", je retire ma remarque.

Message cité 1 fois
Message édité par boulgakov le 03-06-2007 à 14:44:16
mood
Publicité
Posté le 03-06-2007 à 14:33:03  profilanswer
 

n°1569333
the_phoeni​x2
Posté le 03-06-2007 à 18:42:56  profilanswer
 

boulgakov a écrit :

Je ne connais pas ton projet, mais de toutes façons il est improbable qu'utiliser un Object serait une bonne idée même si tu étais en Java.
 
Edit : J'ai jeté un coup d'oeil à ta capture d'écran : tu fais juste un test vite fait "hors projet", je retire ma remarque.


 
 
Oui sur la capture c'est un juste un test.
 
Sinon dans mon projet, j'utilise les graphes et la classe object m'était utile dans le sens ou à chaque sommet j'attributs un object pour pouvoir y stocker ce que je veux et être le plus général et évolutif possible, stout :p
 
 

n°1569351
slash33
Posté le 03-06-2007 à 20:06:37  profilanswer
 

une interface commune devrait marcher normalement. Enfin c'est le but de la POO il me semble

n°1569848
boulgakov
Posté le 04-06-2007 à 16:01:39  profilanswer
 

the_phoenix2 a écrit :

Sinon dans mon projet, j'utilise les graphes et la classe object m'était utile dans le sens ou à chaque sommet j'attributs un object pour pouvoir y stocker ce que je veux et être le plus général et évolutif possible, stout :p


 
C'est mal !
 
(Mais bon si ça marche  :D )


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Passage Java/C++ petite question :)

 

Sujets relatifs
cgi javavba excel question concours : le nul du mois
application en java[C++] question un peu tordue sur les templates
Question sur les structuresEncore une question sur les pointeurs
question sur les pointeurs de fonctionsquestion sur les pointeurs
Petite horloge toute con sur un siteAvantages du C# par rapport au Java
Plus de sujets relatifs à : Passage Java/C++ petite question :)


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