IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Question sur un pointeur ?


Sujet :

C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut Question sur un pointeur ?
    Bonjour.

    J'ai un problème avec un pointeur sur un programme dans un arduino.

    Je me permet de le poster ici car sur le forum arduino il n'y à pas beaucoup de réponses...

    J'ai un objet nommé Wifi que je ne comprends pas trop...

    J'ai écris ce code (simplifié) qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    #include <Wire.h>
    #include <UnoWiFiDevEd.h>
     
    void setup() 
    {
        Wifi.begin(); // Initialise le serveur wifi.
        Wifi.println(F("Web Server is up")); // Préviens le serveur que tout est ok et prêt à etre utilisé.
    }
     
    void loop() 
    {
        while(Wifi.available())
        {
          process(Wifi);
        }
      delay(50);
    }
     
    void process(WifiData client) 
    {
      String command = client.readStringUntil('/');
     
      if (command == "webserver") 
      {
        WebServer(&client);
      }
    }
     
    void WebServer(WifiData *client) 
    {
     
      int index = -1;
     
      index = client->parseInt();
     
      if (index == 10)
      {
        page_etat(client);
      }
    }
     
    void page_etat(WifiData *client)
    {
      client->println(F("HTTP/1.1 200 OK"));
      client->println(F("Content-Type: text/html"));
      client->println();
     
      client->println(F("<!DOCTYPE html>"));
      client->println(F("<html>"));
      client->println(F("<head>"));
      client->println(F("<meta charset=\"utf-8\">"));
      client->print(F("<meta http-equiv=\"refresh\" content=\"0.1; URL=http://adresseweb.html">"));
      client->println(F("</head>"));
      client->println(F("<body/>"));
      client->println(F("</html>"));
      client->print(DELIMITER); // very important to end the communication !!!

    J'ai voulu éclaircir un peut la chose et j'ai écris le même code mais de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    #include <Wire.h>
    #include "Pages_Web.h"
    #include <UnoWiFiDevEd.h>
     
    Pages_Web pageWeb();
     
    void setup() 
    {
      Wifi.begin(); // Initialise le serveur wifi.
      Wifi.println(F("Web Server is up")); // Préviens le serveur que tout est ok et prêt à etre utilisé.
    }
     
    void loop() 
    {
      while(Wifi.available())
      {
        process(Wifi);
      }
     
      delay(50);
    }
     
    void process(WifiData client) 
    {
      String command = client.readStringUntil('/');
     
      if (command == "webserver") 
      {
        WebServer(&client);
      }
    }
     
    void WebServer(WifiData *client) 
    {
     
      short int index = -1;
     
      index = client->parseInt();
     
      if (index == 10) 
      {
        pageWeb.page_etat(client);
      }
    Mon objet pageWeb fait partit d'une classe présente dans le fichier "Pages_Web.h" (d'ou l'include en haut du fichier main)

    Mon fichier Pages_Web.cpp contient ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    void Pages_Web::page_etat(WifiData *client)
    { 
      client->println(F("HTTP/1.1 200 OK"));
      client->println(F("Content-Type: text/html"));
      client->println();
     
      client->println(F("<!DOCTYPE html>"));
      client->println(F("<html>"));
      client->println(F("<head>"));
      client->println(F("<meta charset=\"utf-8\">"));
      client->print(F("<meta http-equiv=\"refresh\" content=\"0.1; URL=http://adresseweb.html">"));
      client->println(F("</head>"));
      client->println(F("<body/>"));
      client->println(F("</html>"));
      client->print(DELIMITER); // very important to end the communication !!!
    }
    Mais ce code ne fonctionne pas : le navigateur internet pédale sans rien afficher.

    Si quelqu'un sait pourquoi et par la même occasion m'expiquer ce qu'est l'objet Wifi qui devient WifiData avec un ... je ne sais quoi qui deviens client ??

    Bref je suis un peut perdu.

    Je précise que le site qui contenais les informations (arduino.org) est plus entretenu donc je ne trouve plus les docs pour l'arduino.

    Je précise également que c'est un arduino uno Wifi (avec wifi intégré dans la carte donc pas de shield).

    Merci.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Vue que pageWeb est le nom d'une fonction et en rien un objet instancié dans ce que tu montres, ton code ne devrait même pas compiler parce que pageWeb.page_etat(client); n'a aucun sens.
    Aussi si c'est juste pour ne rien utiliser de variables membres de Page_Web, autant mettre ça en static ou dans un namespace.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut
    Je ne comprends pas votre phrase :
    Vue que pageWeb est le nom d'une fonction et en rien un objet instancié
    Ma fonction c’est Pages_Web et mon objet c’est pageWeb. Ou alors je me mélange les pinceaux ?

    Du coup je suis d’accord avec le fait de le mettre en static mais je suis pas sûr que ça résolve le problème si ?

    Je ne sais pas trop comment manipuler mon objet ? Classe ? Truc Wifi :/

  4. #4
    Membre éclairé Avatar de sylvain.cool
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Par défaut
    En faisant cela :
    Tu déclare une fonction pageWeb qui retourne un objet Pages_Web.
    Toi, tu veux faire celà je pense :
    Pour créer un objet Pages_Web nommé pageWeb.

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut
    Comme Pages_Web est une classe, si je fais Pages_Web pageWeb(); je fais appel à mon constructeur non ? Et par la même occasion je crée un objet de la classe Pages_Web de nom pageWeb ?
    Je l’ai pas mis dans le code que je vous ai envoyé mais il y est !

    J’ai toujours fait comme ça :$. Je me plantais ?

    P.S. Désolé pour les balises je suis sur un smartphone et je n’ai pas accès aux balises...

  6. #6
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Non, tu déclares une fonction.

    il faut écrire Pages_Web pageWeb; ou Pages_Web pageWeb{};

  7. #7
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Pour info, cette confusion est tellement courante et frustrante qu'un nom lui a été donné ; il s'agit du Most Vexing Parse : si quelque chose peut être interprété comme une déclaration de fonction, ça l'est.

  8. #8
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut
    Ok donc si je comprends bien, j'ai aussi une classe Mototisation qui à un constructeur surchargé.

    Pour créer une objet moteur je dois faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Motorisation moteur;
    moteur= new Motorisation(ma surcharge) ;
    ?

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 500
    Par défaut
    Non.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Motorisation moteur{LesParamètresCorrespondantALaSurcharge};

  10. #10
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut
    Merci pour ces précisions, je l'ignorais totalement....

    cela dit ça résout pas mon problème principal.

    J'ai changé ma classe Pages_Web et j'en ai fait un namespace.

    Ça me donne ceci dans le fichier Pages_Web.h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #ifndef PAGES_WEB_H
    #define PAGES_WEB_H
     
    #include <UnoWiFiDevEd.h>
     
     
    namespace Pages_Web
    {
      void page_ouverture(WifiData *client);
    }
     
    #endif
    Mon fichier Pages_Web.cpp est donc comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include "Pages_Web.h"
     
    namespace Pages_Web
    {
      void page_ouverture(WifiData *client)
      {
        client->println(F("HTTP/1.1 200 OK"));
        client->println(F("Content-Type: text/html"));
        client->println();
     
        client->println(F("<!DOCTYPE html>"));
        client->println(F("<html>"));
        client->println(F("<head>"));
        client->println(F("<meta charset=\"utf-8\">"));  
        client->print(F("<meta http-equiv=\"refresh\" content=\"0.1; URL=http://monadresse.html\">"));
        client->println(F("</head>"));
        client->println(F("<body/>"));
        client->println(F("</html>"));
        client->print(DELIMITER); // very important to end the communication !!!
      }
    }
    Et mon fichier main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #include <Wire.h>
    #include "Pages_Web.h"
    #include "Motorisation.h"
    #include <UnoWiFiDevEd.h>
     
    Etat_FDC finsDeCourses;
     
    Motorisation moteur{&finsDeCourses};
     
     
    void setup() 
    {
      Wifi.begin(); // Initialise le serveur wifi.
      Wifi.println(F("Web Server is up")); // Préviens le serveur que tout est ok et prêt à etre utilisé.
    }
     
    void loop() 
    {
      while(Wifi.available())
      {
        process(Wifi);
      }
     
      delay(50);
    }
     
    void process(WifiData client) 
    {
      String command = client.readStringUntil('/');
     
      if (command == "webserver") 
      {
        WebServer(client);
      }
    }
     
    void WebServer(WifiData client) 
    {
     
      short int index = -1;
      unsigned long int temps = millis();
     
      index = client.parseInt();
     
      if (index == 1) 
      { 
         Pages_Web::page_ouverture(&client);  
      }
    }
    Mais donc mon navigateur internet pédale dans le vide pour me dire que le serveur réponds pas... Alors que mon code (en haut du sujet 1er commentaire) fonctionne.

    J'ai trouvé cette page : https://github.com/arduino-libraries...UnoWiFiDevEd.h mais je ne comprends toujours pas comment de "Wifi" on passe à "WifiData client"

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Jeano81 Voir le message
    J'ai trouvé cette page : https://github.com/arduino-libraries...UnoWiFiDevEd.h mais je ne comprends toujours pas comment de "Wifi" on passe à "WifiData client"
    2s de lecture de la page en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class ArduinoWifiClass : public WifiData {...};
    ...
    extern ArduinoWifiClass Wifi;
    Et tu ne comprends pas ?
    Héritage ? Polymorphisme ? Si ça ne te parle pas, tu manques de bases.
    Et faire une copie slicée de l'objet est pas top, mais on dirait qu'il n'y a pas de vtable et aucune donnée dans les classes filles donc ça doit sauver le coup.
    Pour ton problème de navigateur, ma boule de crystal est morte. Cela dit utiliser un debugger serait un premier pas.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  12. #12
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut
    Je sais que je manque de beaucoup de choses en programmation. Je bidouille tant bien que mal c’est pour ça que je viens demander des conseils/renseignements. Je vais chercher alors héritage et polymorphismes pour essayer de comprendre un peut plus. Pour ce qui est de la «*copie slicée de l’objet*» ??? Guézézé ?

    C’est le fait de faire passer Wifi en WifiData et client sans pointeurs dans mon main ?

    EDIT :

    Je suis sur open classroom pour comprendre l'heritage et je tombe sur ce code :
    On peut donc écrire unmain()comme celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int main()
    {
       Personnage marcel("Marcel");
       marcel.sePresenter();
     
       return 0;
    }
    Ca devrait pas plus tot etre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int main()
    {
       Personnage marcel{"Marcel"};
       marcel.sePresenter();
     
       return 0;
    }
    Si j'ai bien compris ce que me disait bacelar ???

  13. #13
    Membre éclairé Avatar de sylvain.cool
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Par défaut
    1/ En gros oui, c'est ça
    2/ Je ne connaissais pas la seconde pas la seconde formulation, mais la première marche bien ici car le compilateur ne peut pas l’interpréter comme une déclaration de fonction.
    3/ Pour ton problème de base, entre ta première version et la dernière tu as ça : qui est devenu , normal ?

  14. #14
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut
    Oui c’est que je simplifie le code pour vous le donner mais j’en ai 3 (1,2 et10). Le souci ne ce situe pas la. Desole j’aurais dû relire.

  15. #15
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Si.
    C'est juste que les cours C++ d'open classroom sont périmé d'au moins 6 ans (et 2 normes publiées). (en plus d'enseigner de très mauvaises choses sur le C++)

  16. #16
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut
    Du coup vous vous basez aux derniers compilateurs en dates pour la programmation et les conseils. C’est pas dit que mon compilateur le comprenne si ?

  17. #17
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Les derniers compilateurs en date supportent le C++14, et même une partie (voire tout) le C++17.
    Tous supportent le C++11 (visual depuis la version 2015, gcc depuis 4.8.x, clang depuis un moment aussi).

    Ne pas enseigner C++11 serait une erreur, au vue des améliorations de lisibilité et de qualité apportées au langage.

    Il faudrait une bonne raison pour utiliser un vieux compilateur, puisque celui-ci est moins optimisant, moins fiable, moins prévenant (moins de warnings, par exemple) qu'un plus récent. Pour gcc en particulier, il y a eut plus d'une dizaine de versions depuis le support total C++11.

  18. #18
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut
    Ok tant mieux alors.

    Pour en revenir à mon souci de Wifi et WifiData. Si je comprends bien, j’ai une classe : ArduinoWifiClass, qui avec l’aide de «*extern*» peut s’appeller simplement Wifi ?

    Ensuite j’ai une classe Wifi qui elle hérite de la classe WifiData donc Wifi est ma classe mère et WifiData la «*fille*» de Wifi j’ai bon ??

    Partant de là mon objet «*client*» est un objet WifiData (qui prends en plus des fonctions de Wifi les fonctions de WifiData) ? Donc à priori mon code est pas trop mauvais ? Si je ne m’abuse !

  19. #19
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 500
    Par défaut
    Pour en revenir à mon souci de Wifi et WifiData. Si je comprends bien, j’ai une classe : ArduinoWifiClass, qui avec l’aide de «*extern*» peut s’appeller simplement Wifi ?
    Absolument PAS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extern ArduinoWifiClass Wifi;
    C'est pas un alias de type, c'est une déclaration d'une variable globale bien cracra du doux nom de "Wifi" de type "ArduinoWifiClass".

    Ensuite j’ai une classe Wifi qui elle hérite de la classe WifiData donc Wifi est ma classe mère et WifiData la «*fille*» de Wifi j’ai bon ??
    Non plus
    "Wifi" n'est pas une classe, c'est une instance d'objet de la classe ArduinoWifiClass, globale à votre programme.
    Et ArduinoWifiClass est la classe fille de WifiData et pas l'inverse.

    Partant de là mon objet «*client*» est un objet WifiData (qui prends en plus des fonctions de Wifi les fonctions de WifiData) ? Donc à priori mon code est pas trop mauvais ? Si je ne m’abuse !
    Vous êtes complètement "abusé" vous-même.
    Si client est un "WifiData", vous pouvez utiliser les méthodes déclarée par "WifiData" et les celles des classes mères de "WifiData", rien d'autre.

    Vu qu'on se permet l'utilisation de variable globales bien caca, il y a des chances que votre classe "WifiData" ne soit pas copie-constructible mais que le code de la classe "WifiData" ne l'interdit pas.
    Et comme vous passez ce type de paramètre par valeur comme un sagouin à vos fonctions, il y a de bonne chance que vous faites tout péter en interne de "Wifi".

    Un peu de rigueur et une bonne grosse séance de révision des concepts de base du C++ ne serait pas inutile, loin de là.

  20. #20
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut
    En fait je me suis basé sur les exemples de la bibliothèque :/. Ce n’est pas moi qui ai inventé ce code sinon je demanderais pas des explications. Merci en tous cas de m’expliquer tout ça. Donc je vais reprendre et reposer tout ça à plat. Je comprends mieux maintenant pourquoi on me pond un Wifi qui sort de nulle part et que je peux pas en créer un objet vu que ça en est déjà un...

    Je vois donc que ce que j’ai «*appris*» avec open classroom est pas tip top et même les exemples des bibliothèques sont source de bêtise :/ génial...

Discussions similaires

  1. question sur les pointeurs
    Par jd.baculard dans le forum Langage
    Réponses: 3
    Dernier message: 18/03/2006, 02h30
  2. [Debutant] Nouvelle question sur les pointeurs
    Par etiennegaloup dans le forum Débuter
    Réponses: 3
    Dernier message: 11/01/2006, 09h55
  3. [Debutant] Question sur un pointeur
    Par etiennegaloup dans le forum Débuter
    Réponses: 15
    Dernier message: 06/01/2006, 23h34
  4. Question sur les pointeurs.
    Par Chrisemi dans le forum C++
    Réponses: 5
    Dernier message: 28/10/2005, 23h47
  5. questions sur les pointeurs
    Par Hyoga dans le forum C++
    Réponses: 17
    Dernier message: 08/01/2005, 23h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo