no available constructor for "field"

Discussion dans 'Web, design' créé par moumoutus, 5 Mars 2012.

  1. Offline
    moumoutus Touriste
    Bonjour, je me permets de poser une petite question basique, j'ai ici un structure et son constructeur en c++ mais le compilateur me (dit no available constructor for "field").


    dans le .h

    #ifndef _FIELD_H_
    #define _FIELD_H_

    #include "vec.h"

    struct field
    {
    field (const vec & pos);

    vec pos;
    };

    #endif

    dans le .cpp

    #include "field.h"

    field::field(const vec & pos)
    {
    this-:pfrt:os = pos;
    }
    moumoutus, 5 Mars 2012
    #1
  2. Offline
    Skarbone I would rather be snowboarding
    hmm mon CPP est peut être rouillé, mais je ne vois pas de constructeurs moi :D
    Skarbone, 5 Mars 2012
    #2
  3. Offline
    ailless Asimov, Sagan, Carlin, Hitchens
    Tu dois definir le constructeur dans la structure.

    Quel est ton but ? N'est-ce pas mieux de faire une classe ?
    ailless, 5 Mars 2012
    #3
  4. Offline
    mderie Elite
    AMHA : tu as oublie le constructeur par defaut (= sans parametre)
    quand tu as voulu cree une instance de field, genre "field f;"

    Rem : class = structure a qq micro detail pres.
    Rem bis : le nom des classes commencent souvent par une majuscule,
    il est de bon ton de respecter les codings conventions en general...

    Le code ci dessous est OK, happy coding !

    --- 8< --- --- 8< --- --- 8< ---

    $ cat field.hpp

    struct Field
    {
    public:
    Field(const int& pos);
    private:
    int m_pos;
    };

    $ cat field.cpp

    #include "field.hpp"

    Field::Field(const int& pos)
    {
    m_pos = pos;
    }

    int main()
    {
    Field field(31);
    return 0;
    }

    $ g++ -o field field.cpp
    mderie, 4 Avril 2012
    #4