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

Langage C++ Discussion :

Passer des types primitifs par référence constante ?


Sujet :

Langage C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 145
    Points : 99
    Points
    99
    Par défaut Passer des types primitifs par référence constante ?
    Bonjour à tous,

    Voilà j'ai lu dans la faq c++ (et ça parait évident): qu'il vallait mieux passer les paramètres par référence (et si possible constante) à des fonctions pour éviter des copies inutiles.
    En revanche, il est aussi écrit que ce n'est pas nécéssaire pour les types primitifs (par exemple int).

    Ma question est simple: Pourquoi ?
    Est-on perdant à passer des int par référence constante ?

    J'imagine que c'est simplement parceque un int* a la même taille qu'un int sur un système 32 bits et int* est plus gros qu'un int sur un système 64bits. Ais-je raison ?

    Merci d'avance.

  2. #2
    En attente de confirmation mail

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Points : 3 311
    Points
    3 311
    Par défaut
    Bonjour.

    Oui, c'est bien ca, pour les types léger (*) (ca inclue les types primitifs), on ne gagne rien à passer par référence, donc inutile de le faire.

    (*) Pour peu qu'ils soit copiable.

  3. #3
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par FluidBlow Voir le message
    Bonjour à tous,

    Voilà j'ai lu dans la faq c++ (et ça parait évident): qu'il vallait mieux passer les paramètres par référence (et si possible constante) à des fonctions pour éviter des copies inutiles.
    En revanche, il est aussi écrit que ce n'est pas nécéssaire pour les types primitifs (par exemple int).

    Ma question est simple: Pourquoi ?
    Est-on perdant à passer des int par référence constante ?

    J'imagine que c'est simplement parceque un int* a la même taille qu'un int sur un système 32 bits et int* est plus gros qu'un int sur un système 64bits. Ais-je raison ?

    Merci d'avance.
    On passe par const ref parce que ca mobilise peu de place sur la pile. Les types de base (int, ...) ont une taille suffisament reduite pour que ça ne pose pas de problème.

Discussions similaires

  1. [Débutant] Passer des contrôles générés par code dans une autre méthode
    Par Abalalojik dans le forum C#
    Réponses: 1
    Dernier message: 19/02/2014, 14h33
  2. Réponses: 4
    Dernier message: 07/04/2013, 17h53
  3. Réponses: 6
    Dernier message: 28/12/2012, 18h56
  4. Passer des types simples en paramètres
    Par Aleph69 dans le forum C++
    Réponses: 15
    Dernier message: 15/05/2011, 00h28
  5. Réponses: 10
    Dernier message: 03/03/2005, 13h36

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