no available constructor for "field"

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;
}
 

Skarbone

Le méchant Ω
hmm mon CPP est peut être rouillé, mais je ne vois pas de constructeurs moi :D
 

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 ?
 

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
 
Haut