Cannot call member function without object

Fermé
attia.iheb.pro - Modifié par attia.iheb.pro le 23/04/2014 à 02:55
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 - 23 avril 2014 à 14:36
Bonjour, j'ai un probleme cannot call member function 'int data::lire_data(data&)' without object .Pouvez vous m'aidez ... Merci d'avance :)



class data
{
private:
 int cle;
public:
 void set_data_cle(int k)
 {
  cle=k;
 }
 int get_data_cle()
 {
  return (cle);
 }
 int lire_data(data &d)
 {
                           d.cle=cle;
  if (d.cle==-1)
   return 0 ;
  return 1;
 }

................................

data::lire_data(p);

1 réponse

sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 49
Modifié par sambia39 le 23/04/2014 à 14:36
Bonjour
Je sais pas ce que ton code fait exactement (d'autant plus en a pas certaines informations) mais il me semble que ton erreur vient de l'utilisation de l'objet que tu as créé, quand tu décaler ton objet de cette façon
 data d; 

tu accède comme ceci
d.Lire_data(/* argument*/);
,
dans le cas contraire c'est-à-dire avec un
new
 data *ptr_D = new data(); 

tu procèdes comme ça
 ptr_D->Lire_data(/* argument*/);
notion (pile & tas).

#include <iostream>

/**
* Ta classe
**/
class data
{
 private:
   int cle;  //variable clef
 public:
   void set_data_cle(int k){
     this->cle = k;
   }
   
   //Getters
   int get_data_cle(void){
     return (this->cle);
   }
   
   //Lire Data
           int lire_data(data &d){
                        d.cle = this->cle;
                        return ( (d.cle == (-1) ) ? 0 : 1);
           }
};

/**
 * Fonction principale
 **/
int main(void) {
 
 data p;
 
 if( 0 == (p.lire_data(p)) )
  std::cerr << "NULL" << std::endl;
 std::cout << "OK"<< std::endl;
 
 return (0);
}

à bientôt

Toute connaissance est une réponse à une question.
0