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 :

[template] Attribut accessible à toute instance de la classe avec tout param template


Sujet :

Langage C++

  1. #41
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Citation Envoyé par Goten Voir le message
    ? le paramètre d'un constructeur de copie doit toujours être passé par référence constante. donc c'est plutôt normal
    certes, je l'ai constaté, mais c'est à la conséquence de ce fait sur mes constructions héritées que je m'intéresse.

    Note: le compilo accepte une référence non const.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  2. #42
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Oui, car sémantiquement c'est valide, ca ne brise aucune règles qui pourraient empêcher la compilation mais regarde ce code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class A
    {
    A(int){/*...*/}
    A(A& a){/*...*/}
    };
     
    int main()
    {
    A aa=5; // <=> A aa(A(5)).
    }
    Il ne va pas compiler, car la référence sera sur un objet temporaire.
    Avec une référence const, ca passe.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #43
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    avec cette déclaration, le friend est valide pour n'importe quel angle template ?

    aurais-tu un que c'est une cours traitant ce point, je souhaiterais approfondir .
    Pas de cours, non, je ne sais plus où j'avais trouvé la solution à l'époque où j'en avais eu besoin. je suppose qu'une recherche approfondie sur google sur friend template doit pouvoir ramener quelque chose d'intéressant.

    Par contre, la première réponse à ta question est oui, ça fait en sorte que n'importe quel angle template est friend. C'est il me semble ce que tu cherchais à faire

  4. #44
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Bonjour, bon, j'ai eu une petite coupure, mais j'ai enfin pu tester cette solution:
    Sous gcc (via code::blocks), j'ai, uniquement lorsque j'instancie la classe, une erreur sur cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    template<int> friend class angle;
    il me dit quelque chose du genre
    redefined parameter int 'cycle' as int <Anonymous>
    auriez vous une idée ?

    J''instancie la classe de cette façon:
    merci
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  5. #45
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Et avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    template <int N> friend class angle<N>;

  6. #46
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Citation Envoyé par Alp Voir le message
    Et avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    template <int N> friend class angle<N>;
    ça ne marchait pas non plus, mais j'ai trouvé d'ou venait mon problème ><'

    j'avais redéfini le int en unsigned int, d'ou le conflict .

    je vais me faire fouetter pour la peine


    enfin, bon, après un certain temps, ce sujet est

    A propos, cette astuce devrait être ajoutée à la faq non ?

    Merci à tous
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  7. #47
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Citation Envoyé par méphistopheles Voir le message

    A propos, cette astuce devrait être ajoutée à la faq non ?

    Merci à tous
    Tout à fait. Si tu trouves une bonne formulation, n'hésite pas à nous en faire part dans le forum C & C++ > Contribuez, on l'ajoutera pour la prochaine mise à jour !

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Réponses: 8
    Dernier message: 27/03/2015, 16h34
  2. Réponses: 32
    Dernier message: 28/11/2010, 17h33
  3. Instance d'une classe avec une string
    Par beetlejuice722 dans le forum C#
    Réponses: 30
    Dernier message: 31/10/2008, 10h43
  4. Envoyer un message a toutes instances d'une class
    Par toure32 dans le forum Delphi
    Réponses: 2
    Dernier message: 18/11/2006, 20h06
  5. Réponses: 2
    Dernier message: 07/07/2006, 19h59

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