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 :

Pointeur et objet


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    autodidacte
    Inscrit en
    Décembre 2018
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Décembre 2018
    Messages : 100
    Par défaut Pointeur et objet
    Bonjour à tous, je débute en c++, et je suis arrivé au chapitre objet et pointeur, et je voudrais savoir si c'est possible d'orienter le pointeur de l'objet vers une variable dans le main ? Merci de votre aide dans ma compréhension

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Oui.
    Un pointeur c'est justement fait pour pointer sur une variable ou une zone dynamiquement allouée.
    Tous les exemples simples de code avec pointeurs utilisent souvent un pointeur sur une variable de la fonction main().

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Il faut déjà comprendre ce qu'est un pointeur : ce n'est rien d'autre qu'une variable numérique entière (généralement) non signée qui représente ... l'adresse mémoire à laquelle on (est sensé / espère) pouvoir trouver une donnée du type indiqué.

    Une fois que tu as compris cela, le reste coule presque de source:
    1. Dés qu'une information est en mémoire, il peut y avoir un pointeur dont la valeur correspond à l'adresse mémoire à laquelle cette information se trouve
    2. dés que tu es en mesure de désigner clairement cette information au travers d'un nom (d'un identifiant), tu peux demander au compilateur de fournir l'adresse à laquelle elle se trouve.
    3. dés que tu peux demander l'adresse mémoire à laquelle se trouve une information quelconque, tu peux affecter cette adresse à un pointeur

    Notes cependant que les pointeurs posent énormément de problèmes, entre autres, parce qu'il n'y a rien qui ressemble d'avantage au contenu d'une adresse mémoire donnée ... que le contenu d'une autre adresse mémoire au niveau du processeur.

    Si on essaye d'accéder au contenu d'une adresse mémoire (au travers d'un pointeur) qui, pour une raison ou une autre, ne contient pas l'information espérée, cela provoquera immanquablement des catastrophes .

    Or, C et C++ sont très différents à ce point de vue, car, si l'on est pour ainsi dire obligés d'apprendre à manipuler des pointeurs en C dés le deuxième chapitre, C++ nous offre énormément de possibilités de "faire autrement", et de ne devoir réellement s'intéresser à la notion de pointeurs qu'une fois que l'on aborde les problèmes liés au polymorphisme

    Je ne sais pas quel cours ou tutoriel tu es occupé à suivre, mais, de manière générale, le simple fait que tu poses ta question me laisse à penser que le chapitre qui parle des pointeurs est le deuxième ou le troisième de ton cours.

    Si je peux te donner un conseil, c'est sans doute de fuir ce cours ou ce tutoriel comme la peste, car il suit -- de toutes évidences -- "l'approche historique" de l'apprentissage du C++, et qu'il risque très fort de te donner un tas de (très) mauvaises habitudes, dont tu auras sans doute le plus grand mal à te défaire par la suite, afin de commencer à réellement coder en C++
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre confirmé
    Homme Profil pro
    autodidacte
    Inscrit en
    Décembre 2018
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Décembre 2018
    Messages : 100
    Par défaut
    Merci de votre aide, mais en gros c'est sur l'utilisation des pointeurs par rapport aux objets, je voulais savoir si c'est possible de déclarer un pointeur dans un objet et le faire pointer vers une variable déclaré dans le main, car ils ont montré comment faire le pointeur d'un objet pointer vers un autre objet ou un pointeur dans le main pointer vers une variable du main, mais je souhaitais faire le pointeur d'un objet pointer vers une variable déclaré dans le main, j'ai l'impression que ce n'est pas possible

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Je ne vois pas ce qui te bloque. Il faudrait un exemple.
    Quand on n'est pas dans dans le main, on n'a pas accès aux variables dans main(). Mais on a pu prendre leur adresse avant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class UnObjet {
    public:
       int*  unPointeurSurUnEntierQuelconque;
    };
     
    void uneFonction( int* adresseDUneVariable ) {
       UnObjet  monObjet;
       monObjet.unPointeurSurUnEntierQuelconque = adresseDUneVariable;  // L'objet a un pointeur sur une variable du main()
    }
     
    int main() {
       int  variableDansMain = 2;
       uneFonction( &variableDansMain );  // appel de fonction, on lui passe l'adresse de la variable (donc un pointeur).
    }

  6. #6
    Membre confirmé
    Homme Profil pro
    autodidacte
    Inscrit en
    Décembre 2018
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Décembre 2018
    Messages : 100
    Par défaut
    Ah d'accord c'est que je le faisais mal, j'avais déclaré le pointeur dans privée, et dans le constructeur j'avais mis que le pointeur=&variable Donc par la fonction je passe l'adresse de la variable ? Ok je vous remercie énormément

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/10/2006, 17h03
  2. Perte du pointeur à mon objet
    Par Maxou22 dans le forum C++
    Réponses: 1
    Dernier message: 11/03/2006, 05h42
  3. Tableau de pointeurs sur objets
    Par bassim dans le forum C++
    Réponses: 11
    Dernier message: 13/12/2005, 19h45
  4. [TTreeView] Problème avec les pointeurs d'objet
    Par BlackWood dans le forum Composants VCL
    Réponses: 2
    Dernier message: 02/07/2004, 14h31
  5. [Debutant VC++.net] Obtenir un pointeur sur objet
    Par SteelBox dans le forum MFC
    Réponses: 6
    Dernier message: 17/06/2004, 18h36

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