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

Langage C++ Discussion :

(netbeans) exercice théorique sur les conversions


Sujet :

Langage C++

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Points : 213
    Points
    213
    Par défaut (netbeans) exercice théorique sur les conversions
    bonjour,

    je voudrais tester les conversions de type définies par l'utilisateur.
    mais j'obtiens une erreur qui est du chinois pour moi.

    explication: la fonction f attend un complexe, mais c'est un double qui lui est passé. il y a donc appel du constructeur à 1 argument (avec le deuxième par défaut), puis du constructeur de recopie (pour l'argument complexe passé en paramètre).

    voici le programme (court):

    complexe.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #ifndef _COMPLEXE_H
    #define	_COMPLEXE_H
     
    class complexe {
    private:
        double x,y;
     
    public:
        complexe(double r=0,double i=0);
        complexe( complexe& orig);
        friend void fct (complexe i);
     
     
    };
    complexe.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include "complexe.h"
     
    complexe::complexe(double r=0, double i=0) {
        x=r;
        y=i;
    };
     
    complexe::complexe(complexe& orig) {
     
        x=orig.x;
        y=orig.y;
    };
    main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include <stdlib.h>
    #include <iostream>
    #include "complexe.h"
     
    using namespace std;
     
    int main(int argc, char** argv) {
     
        void fct (complexe);
        fct(2.8);
     
        return (EXIT_SUCCESS);
    }
     
    void fct (complexe i){
        cout << "exécution de fct avec " << i.x << i.y;
    }
    voici l'erreur:
    complexe.cpp:10: error: default argument given for parameter 1 of `complexe::complexe(double, double)'

    complexe.h:16: error: after previous specification in `complexe::complexe(double, double)'

    complexe.cpp:10: error: default argument given for parameter 2 of `complexe::complexe(double, double)'

    complexe.h:16: error: after previous specification in `complexe::complexe(double, double)'
    olivier.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour,
    Un cumul de petites inattentions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    complexe( complexe& orig);
    N'est pas un constructeur par copie -> manque le const :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    complexe( complexe const & orig);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    complexe::complexe(double r=0, double i=0)
    {...
    Les valeurs par défaut des arguments se précisent à la déclaration (dans le .h) mais pas à la définition (dans le .cpp) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    complexe::complexe(double r, double i)
    {...
    Tes méthodes se terminent pas un ';' en trop :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    complexe::complexe(double r=0, double i=0) {
        x=r;
        y=i;
    };<- A supprimer
     
    complexe::complexe(complexe& orig) {
     
        x=orig.x;
        y=orig.y;
    };<-A supprimer
    En C++, les headers C ont un équivalent :
    devient :

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Points : 213
    Points
    213
    Par défaut
    salut 3darchi,

    j'ai fait les changements et mnt ça marche.
    c'est dur l'apprentisage du C++!

    merci beaucoup.

    olivier.

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par olivier57b Voir le message
    c'est dur l'apprentisage du C++!
    Légende ! D'ailleurs tu connais un langage mou à apprendre

    N'hésites pas à consulter notre FAQ et nos cours et tutoriels.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.0] question théorique sur les méthodes
    Par mariek dans le forum Langage
    Réponses: 6
    Dernier message: 20/02/2009, 08h41
  2. Réponses: 1
    Dernier message: 20/11/2008, 15h39
  3. Réponses: 3
    Dernier message: 04/04/2008, 18h02
  4. Détails sur les Conversions
    Par Fred2209 dans le forum Visual C++
    Réponses: 5
    Dernier message: 27/12/2006, 14h25
  5. Question théorique sur les normales
    Par Pedro dans le forum DirectX
    Réponses: 5
    Dernier message: 16/10/2005, 19h24

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