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 :

est ce que on peut développer sans utiliser des pointeurs en c++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Doctorant
    Inscrit en
    Février 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 258
    Par défaut est ce que on peut développer sans utiliser des pointeurs en c++
    Bonjour ;

    ma question est dans le titre, est ce que on peut développer sans avoir recours aux pointeurs, je viens de l'environnement java " la ou y'a pas de pointeurs"
    j'ai eu un projet en c++ j'ai bossé dessus en utilisant les vectors.

    est ce que c'est une obligations , et quel sont les avantage de l'utilisation des pointeurs.

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Oui il y a moyen, il suffise que tu n'utilises que des références. (Comme en java quoi, et rien allouer sur le tas en dehors de classes)
    Je pense que java n'utilise que des pointeurs constant.

    Et tu dois t'arranger pour convertir ce qui est alloué avec new en pointeur constant pour le passer à la référence.

  3. #3
    Membre éprouvé
    Avatar de TiranusKBX
    Homme Profil pro
    Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Inscrit en
    Avril 2013
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 476
    Billets dans le blog
    6
    Par défaut
    Tu peut très bien faire des programmes complexes en C++ sans utiliser de pointeur mais pour ce faire
    tu doit utiliser une lib qui te ferais ce genre de manipulation perso pour des liste j'utilise du Qt en C++
    mais à toi de voir qu'elle lib tu veut utiliser

  4. #4
    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 pointeurs sont dans l'âme de C++, qu'ils soient pleinement visibles, encapsulé dans les smart pointers, ou remplacé par des références.

    Le fait de manipuler une valeur via plusieurs noms est nécessaire.
    Et le fait que le polymorphisme ne soit accessible que via les références et pointeurs est une autre raison.

    En C++, les références seront tes meilleures amies, bien plus que les pointeurs, en temps général.

    Il faut bien voir qu'en Java, tu n'as que des pointeurs (sauf type de base), ce qui permet de s'affranchir des notations & et *.
    Ce n'est pas pour rien que chaque valeur est créée via new.

    En C++, tu va pouvoir créer des valeurs directement dans la pile.

  5. #5
    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
    Citation Envoyé par persé Voir le message
    est ce que c'est une obligations , et quel sont les avantage de l'utilisation des pointeurs.
    Le pointeur permet des choses un peu particulière:

    Le pointeur de fonction, qui permet de ne pas créer une classe autour de la fonction, et un objet de cette classe.
    Même si on lui préfère une classe surchargeant l'opérateur (), ce qu'on appelle un foncteur.

    Les sous tableaux. En effet, un tableau est presque un pointeur, et un pointeur peut être manipulé comme un tableau
    Ainsi, si int tab[] = {0, 1, 2, 3, 4, 5}; déclare un tableau de six entiers, tab est un aussi un pointeur vers le premier élément, et tab+1 un pointeur vers le second.

    Du coup, il est possible de donner tab+1 et tab+4 comme argument à la fonction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //somme de begin à end (exclus)
    int sum_range(int *begin, int *end) {
        int sum= 0;
        for (int * p = begin, p < end; ++p) {
            sum += *p;
        }
        return sum;
    }
    Stocker des objets dans une collection, en préservant le polymorphisme.
    un vector<Vehicule> découpera chaque Voiture en Vehicule lors de l'insertion (slicing)
    tandis qu'un vector<Vehicule*> demandera d'être attentif à la mémoire (il faudra savoir quand faire un delete, si les pointeurs sont obtenus par new), mais une Voiture sera correctement manipulée.


    Pour te rassurer, j'ai déjà codé des applications sans utiliser de pointeur du tout, seulement des références. Et sans bibliothèques type Qt.
    Il ne faut pas en avoir peur, il faut juste comprendre ce qu'ils sont, ce qu'ils permettent, et comment ils se manipulent.
    Il existe d'ailleurs un petit tuto sur le sujet: les pointeurs en C et C++

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 151
    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 151
    Billets dans le blog
    4
    Par défaut
    Salut,

    JAVA t'a toujours menti, c'est pas qu'il n'y a "pas de pointeur", mais qu'il y a "que des pointeurs".
    Seulement ils sont cachés, et par-dessus tout ça on rajoute un garbage collector pour faire ton boulot (création, libération, durée de vie, qui est propriétaire, ..).

    Un pointeur ça devient obligatoire dans un cas simple, et qui survient finalement assez souvent : garder un objet en vie hors scope, via le tas (la HEAP).
    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.

  7. #7
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Billets dans le blog
    21
    Par défaut
    Pourquoi te poses-tu cette question-là?

    Si c'est parce que les pointeurs te semblent ardus, mieux vaut ne pas te lancer dans le C++, parce que ce n'est vraiment pas le point le plus difficile du langage...

    De plus, si, comme d'autres l'ont souligné, il est techniquement possible de se passer de pointeurs en utilisant les références, les deux ne sont pas interchangeables et les références ont leur propre complexité (surtout depuis c++11 et les rvalue references).

    Enfin, un des intérêts du C++ est de pouvoir manipuler des librairies anciennes, entre autres des librairies C, dans lesquelles les pointeurs sont un passage obligé.

    P.S: les pointeurs, ce n'est pas si compliqué...

  8. #8
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Juin 2014
    Messages : 345
    Par défaut
    Techniquement oui, il est possible de développer des projets entiers sans toucher aux pointeurs.

    Mais si par "développer [...] en C++" tu entends développer "en général", càd pas dans le cadre d'un projet spécifique, c'est plus compliqué ...
    Je considère que développer ce n'est pas seulement savoir écrire du code mais aussi le lire, et arrivera tôt ou tard (très tôt je pense) le moment où tu auras besoin de comprendre un code faisant usage de pointeurs.

Discussions similaires

  1. Est-ce que je peut programmer en C avec VS2005
    Par algeriano dans le forum C
    Réponses: 4
    Dernier message: 17/12/2007, 20h47
  2. 2 Define est ce que je peut les mettre dans un entete séparé !
    Par ..::snake::.. dans le forum Bibliothèques
    Réponses: 30
    Dernier message: 18/06/2007, 16h45
  3. Est-ce que Flash peut interagir comme un CMS?
    Par pierrot10 dans le forum Flash
    Réponses: 3
    Dernier message: 28/05/2007, 08h50
  4. est ce que postgresql peut s'installer sur un FAT32 ??
    Par mehdi_swatch dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 31/03/2006, 09h57
  5. Est ce que on peut utiliser mysql5 en production
    Par amika dans le forum Installation
    Réponses: 7
    Dernier message: 12/09/2005, 15h21

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