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 :

no matching function for call to 'Vector3d::Vector3d()'


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Février 2015
    Messages : 39
    Points : 27
    Points
    27
    Par défaut no matching function for call to 'Vector3d::Vector3d()'
    je travail un exercice où il est demandé de tester une fonction mais en compilant je rencontre l'erreurs suivante:
    no matching function for call to 'Vector3d::Vector3d()'

    le fichier .h est comme suit:
    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
    #ifndef VECTOR3D_H
    #define VECTOR3D_H
     
     
    class Vector3d
    {
        float x, y, z;
        public:
            Vector3d(float c1, float c2, float c3);
            virtual ~Vector3d();
            void coincide(Vector3d v1, Vector3d v2);
     
        private:
    };
     
    #endif // VECTOR3D_H
    le fichier .cpp est comme suit:
    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
    18
    19
    20
    21
    #include "Vector3d.h"
    #include <iostream>
     
    using namespace std;
     
    Vector3d::Vector3d(float c1=0, float c2=0, float c3=0)
    {
        x=c1;
        y=c2;
        z=c3;
    }
     
    Vector3d::~Vector3d()
    {
        //dtor
    }
    void Vector3d::coincide(Vector3d v1, Vector3d v2)
    {
        if(v1.x==v2.x && v1.y==v2.y && v1.z==v2.z)
            cout<<"les deux vecteurs coincident!";
    }
    le fichier main.cpp où j'ai testé la fonction coincide() est comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <iostream>
    #include "Vector3d.h"
     
     
    using namespace std;
     
    int main()
    {
        Vector3d v1, v2;
        v1(1,2,3);
        v2(1,2,3);
        coincide(v1,v2);
        return 0;
    }

  2. #2
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    696
    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 : 696
    Points : 2 438
    Points
    2 438
    Par défaut
    Bonsoir.

    Cette erreur indique que tu cherches à utiliser le constructeur par défaut de Vector3d mais qu'il n'est pas défini.

    En effet, quand tu écris Vector3d v1;, tu créés un vecteur mais sans lui donner aucun paramètre.

    Pour enlever cette erreur, il faut soit combiner les deux lignes Vector3d v1; et v1(1,2,3); en Vector3d v1(1,2,3);, soit déplacer les =0 de la définition du constructeur (fichier cpp) dans sa déclaration (fichier h).
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Février 2015
    Messages : 39
    Points : 27
    Points
    27
    Par défaut merci beaucoup vous m'avez beaucoup aider
    merci beaucoup vous m'avez beaucoup aidé

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/01/2012, 14h34
  2. Réponses: 2
    Dernier message: 05/08/2011, 18h13
  3. No matching function for call to 'Joueur::Joueur'
    Par Go'Gaule dans le forum Débuter
    Réponses: 4
    Dernier message: 02/07/2011, 07h50
  4. Réponses: 8
    Dernier message: 09/07/2010, 16h02
  5. no matching function for call
    Par pimousse280187 dans le forum Linux
    Réponses: 1
    Dernier message: 06/06/2009, 21h08

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