C++ Error : undefined reference to.. split()
delp95
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
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
et mon point.hpp :
Quand je compile j'ai l'erreur suivante :
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
A voir également:
- C++ Error : undefined reference to.. split()
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Playback error reconnect in 3s (1/5) francais - Forum Box et Streaming vidéo
- Error 1962 ✓ - Forum PC fixe
- A javascript error occurred in the main process - Forum Matériel & Système
- Whea error occt - Forum Processeur
1 réponse
Bonjour
quand tu définis :
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 :
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)...