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 :

Créer une méthode retournant un array


Sujet :

C++

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 10
    Par défaut Créer une méthode retournant un array
    Bonjour je suis en train de créer une méthode renvoyant un array mais malheuresement pour moi ça ne marche pas ...

    Pourtant quand je crée la fonction dans le main ça marche très bien voici le code de la fonction dans la main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    double *remplirVecteur(double nombre)
    {
            double *array = new double[4];
            for(int i = 0; i < 4; i++)
            {
                array[i] = nombre;
            }
            return array;
    }
    Et voici le code qui ne compile pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    double Classe::*remplirVecteur()
    {
           double *array = new double[4];
            for(int i = 0; i < 4; i++)
            {
                array[i] = nombre;
            }
            return array;
    }
    J'obtiens le message suivant :

    error: cannot convert 'double' to 'double Classe::*' in return

    Merci de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double *Classe::remplirVecteur()

  3. #3
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    735
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 735
    Par défaut
    Bonjour.

    Petit détail avec ce code, tu auras une fuite mémoire si personne n'appelle delete[] après cette fonction.

    Si tu peux travailler avec C++11, tu devrais avoir comme prototype std::array<double, 4> Classe::remplirVecteur(); qui présente l'avantage de ne pas avoir de fuite mémoire (grâce au RVO), et de montrer en un coup d'œil que cette méthode retourne un tableau.

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par défaut
    Même sans C++11, créer une classe Array n'est pas bien compliquée.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Sans parler array, std::vector a toujours été là pour ça aussi.
    C'est d'ailleurs la seule possibilité si la taille du tableau n'est connue qu'à l'exécution.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Bientôt, il y aura aussi std::dynarray, qui me semble encore plus adaptée ici.
    vector est conçu pour changer de taille, tandis que dynarray est de taille fixe, mais connue à l'exécution.

    Je crois qu'il y a un dynarray dans boost.

Discussions similaires

  1. Créer une méthode avec un timeout
    Par damien77 dans le forum Débuter avec Java
    Réponses: 35
    Dernier message: 20/02/2009, 16h05
  2. [Débutant] créer une méthode particuliere utilisable à volonté
    Par singleProject dans le forum Débuter avec Java
    Réponses: 16
    Dernier message: 10/06/2008, 08h16
  3. créer une méthode dynamique delphi
    Par ougueye dans le forum Delphi
    Réponses: 4
    Dernier message: 09/04/2007, 14h33
  4. Réponses: 12
    Dernier message: 23/03/2006, 14h13
  5. Réponses: 3
    Dernier message: 21/03/2006, 13h12

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