C++ Error : undefined reference to.. split()

Fermé
delp95 Messages postés 17 Date d'inscription samedi 10 septembre 2011 Statut Membre Dernière intervention 16 décembre 2012 - 28 mai 2012 à 23:16
 Utilisateur anonyme - 29 mai 2012 à 08:41
Bonjour à tous,

J'ai un problème avec une fonction : ma fonction translate n'est pas reconnu comme une méthode de point alors que je l'ai bien mise dans point.hpp.

Voici ma classe point.cpp
#include "point.hpp"

//constructeur
point::point( std::string const& str )
{
...
}

void translate(int x, int y)
{
   this.coords[0]=this.coords[0]+x;
   this.coords[1]=this.coords[1]+y;
}
...


et mon point.hpp :

#ifndef POINT_HPP_INCLUDED
#define POINT_HPP_INCLUDED 

#include <string>
#include <vector>

class point
{
  public:

  // constructeur par defaut
  point() {}

 void display(std::ostream& os) const;
 void translate(int x, int y); //<=c'est cette fonction qui n'est pas reconnue comme membre


Quand je compile j'ai l'erreur suivante :
point.cpp: In function `void translate(int, int)':
point.cpp:122: error: invalid use of `this' in non-member function
point.cpp:123: error: invalid use of `this' in non-member function

1 réponse

Utilisateur anonyme
29 mai 2012 à 08:41
Bonjour

quand tu définis :
void translate(int x, int y)...

Tu définis une fonction 'simple', pas une fonction membre d'une classe.
Pour que ce soit un membre d'une classe, il faut utiliser le nom de la classe avec l'opérateur de résolution de portée - comme tu le fais déjà pour le constructeur :
void point::translate(int x, int y)...
3