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
    Membre averti
    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
    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
    736
    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 : 736
    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).

  3. #3
    Membre averti
    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
    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