IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

traduction java en c++


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 30
    Points
    30
    Par défaut traduction java en c++
    salut à tous,
    je m'excuse pour ma question je sais qu'elle est imbécile mais je suis encore débutante en c++. j'ai un programme en java et je souhaite le traduire en c++. l'instruction que je ne connais pas comment la traduire est la suivante :
    point [][]mat=new point[15][15];
    j'ai déclaré une classe point amie d'une classe matrice et je souhaite remplir la matrice par des points mais j'ai pas réussi à établir une liaison entre la classe point et matrice.
    merci d'avance

  2. #2
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    heu, peut-on voir la classe matrice ?

    par-ce que sinon, je pense que cette instruction (s'il y a vraiment "point[15][15]" et non "point[n][n]" où n est une variable) peut se traduire comme ceci:dans ce cas, tu aura une matrice de points 15 15 dans un tableau local

    tu peux aussi de manière plus générale faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    point** mat=new point*[n];
    for (int i=0;i<n;++i)
       mat[i]=new point[n]
    (avec n quelconque)
    Attention ! Dans ce dernier cas, il ne faut pas oublier de détruire la variable dynamiquement créée à un moment par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(int i=0;i<n;++)
       //on désalloue les colonnes de mat
       delete mat[i];
    //puis on désalloue la première ligne
    delete mat;

    Rermarque: une solution "plus C++" serait d'utiliser la classe std::vector (dans le second cas) ou boost::array (dans le premier).

    sinon, ton post a plus sa place dans la section débuter à mon avis.

    Bonne chance

    EDIT: j'ai modifié le code de création dynamique, je sait pas ce que j'avais bu ce jour là ><
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  3. #3
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par méphistopheles Voir le message
    tu peux aussi de manière plus générale faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    point** mat=new point[n][n];
    (avec n quelconque)
    Attention ! Dans ce dernier cas, il ne faut pas oublier de détruire la variable dynamiquement créée à un moment par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(int i=0;i<n;++)
       //on désalloue les colonnes de mat
       delete mat[i];
    //puis on désalloue la première ligne
    delete mat;
    Attention, si on part dans cette direction, tout comme il faut faire une boucle pour désallouer, il faut en faire une pour allouer.

    a part ça, il existe en C++ des classes toutes faites de matrice. Si le programme est un peu conséquent, ça peut êtr eune option à envisager.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    point** mat=new point[n][n];
    ça, ça risque pas de compiler...

    Déjà, new point[n][n] ne compilera que si n est connu à la compilation. Ensuite, le type de retour sera point(*)[n], et non point**.

    Et si ça compilait, ce serait de toutes manières une très mauvaise idée pour représenter une matrice.
    Boost ftw

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/09/2012, 16h24
  2. Traduction java bytecode en assembleur
    Par etiennep dans le forum Général Java
    Réponses: 3
    Dernier message: 18/12/2007, 18h45
  3. Traduction Java -> Fortran
    Par pierr dans le forum Fortran
    Réponses: 1
    Dernier message: 28/03/2007, 21h40
  4. traduction java ==> javascript
    Par tibwen dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/12/2005, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo