Erreur anormalle codeblock

bonjour
je suis en étude d'informatique est on y aprend le code en C++
j'ai donc installé codeblock, je me suis lancé dans un projet fou (que je ne tiendrais peut être pas mais peu importe il me faut une direction)

j'ai cette erreur la :
undefined reference to 'point::point(int, int, int)'

pour la ligne
point A(0,0,0);

le problemme c'est que le meme code marche sous C++ builder =S
merci de votre aide

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    L'erreur n'est pas une erreur de compilation, mais une erreur à l'édition des liens. Le fichier qui définit la constructeur doit aussi être mis dans la liste des fichiers du projet.
    1. c'est ce que j'ai fait
  2. je vous passe tout le code :
    Main.cpp
    #include <iostream>
    using namespace std;
    #include "point.h"
    
    int main()
    {
    point A(0,0,0),
          B(5,0,0),
          C(0,5,0),
          D(0,0,5) ;
    float distAB,
          aireABC,
          cubeABCD ;
    //--------------------------//
    distAB = A.dist(B) ;
    aireABC = A.aire(B,C) ;
    cubeABCD = A.cube(B,C,D) ;
    //--------------------------//
    return 0 ;
    }
    

    point.h
    #ifndef POINT_H_INCLUDED
    #define POINT_H_INCLUDED
    class point {
    private:
        int X,
            Y,
            Z,
            groupe,
            model ;
    public:
        point() ;
        point(int prmX,int prmY,int prmZ) ;
        ~point() ;
    
        //getter
        int getX(void) ;
        int getY(void) ;
        int getZ(void) ;
        int getGroupe(void) ;
        int getModel(void) ;
    
        //setter
        void setX(int prmX) ;
        void setY(int prmY) ;
        void setZ(int prmZ) ;
        void setGroupe(int prmGroupe) ;
        void setModel(int prmModel) ;
    
        //fonction
        float dist(point prmPt) ;
        float aire(point prmPt1,point prmPt2) ;
        float cube(point prmPt1,point prmPt2,point prmPt3) ;
    
    } ;
    #endif // POINT_H_INCLUDED
    

    point.cpp
    #include <math.h>
    #include hdrstop
    #include "point.h"
    point :: point() {
        X = 0 ;
        Y = 0 ;
        Z = 0 ;
        groupe = 0 ;
        model = 0 ;
    }
    point :: point(int prmX,int prmY,int prmZ) {
        X = prmX ;
        Y = prmY ;
        Z = prmZ ;
        groupe = 0 ;
        model = 0 ;
    }
    point :: ~point() {}
    
    //getter
    int point :: getX(void) {
        return X ;
    }
    int point :: getY(void) {
        return Y ;
    }
    int Point :: getZ(void) {
        return Z ;
    }
    int point :: getGroupe(void) {
        return groupe ;
    }
    int point :: getModel(void) {
        return model ;
    }
    
    //setter
    void point :: setX(int prmX) {
        X = prmX ;
    }
    void point :: setY(int prmY) {
        Y = prmY ;
    }
    void Point :: setZ(int prmZ) {
        Z = prmZ ;
    }
    void point :: setGroupe(int prmGroupe) {
        groupe = prmGroupe ;
    }
    void point :: setModel(int prmModel) {
        model = prmModel ;
    }
    
    //fonction
    float point :: dist(point prmPt) {
        return sqrt(pow(X-prmPt.getX(),2)+pow(Y-prmPt.getY(),2)+pow(Z-prmPt.getZ(),2)) ;
    }
    float point :: aire(point prmPt1,point prmPt2) {
        float AB,BC,CA,P ;
        AB = sqrt(pow(X-prmPt1.getX(),2)+pow(Y-prmPt1.getY(),2)+pow(Z-prmPt1.getZ(),2)) ;
        CA = sqrt(pow(X-prmPt2.getX(),2)+pow(Y-prmPt2.getY(),2)+pow(Z-prmPt2.getZ(),2)) ;
        BC = sqrt(pow(prmPt1.getX()-prmPt2.getX(),2)+pow(prmPt1.getY()-prmPt2.getY(),2)+pow(prmPt1.getZ()-prmPt2.getZ(),2)) ;
        P = (AB + BC + CA) / (1.8 + 0.2)
        return sqrt(P*(P-AB)*(P-BC)*(P-CA)) ;
    }
    float point :: cube(point prmPt1,point prmPt2,point prmPt3) {
        return 0; //encore rien de fait =P
    }
    


    EDIT : Ajout des balises de code (la coloration syntaxique).
    Explications disponibles ici : ICI

    Merci d'y penser dans tes prochains messages.
    1. voici
      1. c'est bon j'ai trouvé les erreurs
        petites (ou grosse) erreur de frappe