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 :

passage d'un destructeur en paramètre d'une fonction?!


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut passage d'un destructeur en paramètre d'une fonction?!
    Bonjour à tous
    Je développe en C/C++ depuis un bon moment et actuellement je ne rencontre pas beaucoup de problèmes de programmation et c'est rare que je découvre une nouvelle technique avec ce langage parce que je peux dire que je le maitrise. Et bien ça fait un peu de temps que j'ai commencé à utiliser live555 pour faire le streaming sur RTSP alors j'ai rencontré cette fonction appelée de la manière suivante :

    rtcpGroupsock.changeDestinationParameters(sourceFilterAddress,0,~0);

    Si vous avez bien remarqué, le dernier paramètre est "~0", ce qui semble être un destructeur. Sachant que la déclaration de la fonction en question est :

    Groupsock::changeDestinationParameters(struct in_addr const& NewDestAddr, Port newDestPort, int newDestTTL);

    ce "~0" est un entier, mais pourquoi il est transmit à la fonction avec ce symbôle "~"? C'est quoi sa signification?

    Please help!
    thx 4 all

  2. #2
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Cela n'a aucun rapport de près ou de loin avec les destructeurs.
    Cette notation vient du C.
    L'opérateur ~ est un opérateur unaire qui agit sur les bits.
    Si ma mémoire est bonne, il s'agit du "NON" (aka operateur de complément à 1; cf la norme §5.3.1/9) qui inverse l'état de tous les bits de l'entier -- ils n'ont pas intérêt à se planter entre "0" et le type attendu, car c'est le coup à y avoir des effets de bord rigolos je soupçonne.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut
    Merci Luc Hermitte, tu m'as résolu mon problème.

  4. #4
    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 : 33
    Localisation : Suisse

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Je développe en C/C++ depuis un bon moment et actuellement je ne rencontre pas beaucoup de problèmes de programmation et c'est rare que je découvre une nouvelle technique avec ce langage parce que je peux dire que je le maitrise.
    Le langage C/C++ n'existe pas mais par contre il existe le langage C et le langage C++, qui sont deux langages différents !
    "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)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut
    bon, je sais que tout le monde parle de deux langages différents : le C et le C++ mais pour moi tant que mélanger ces deux langages ensemble pour faire une librairie ou un exécutable est possible et ne constitue pas de difficultés, alors je croix que je vais continuer à les considérer comme un seul langage qui est le C/C++

  6. #6
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Si tu veux mélanger C et C++ à la barbare, rendre ton code exception safe sera quasi impossible.

    Les exceptions, élément central de la programmation en C++, nécessitent une manière spéciale de programmer qui n'est pas possible en C.

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/05/2011, 17h47
  2. Réponses: 6
    Dernier message: 24/07/2006, 15h22
  3. [JpGraph] Passage d'un tableau en paramètre dans une URL pour JPgraph
    Par crazydiver_e2 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 16/01/2006, 16h15
  4. Réponses: 7
    Dernier message: 18/05/2005, 15h09
  5. Réponses: 9
    Dernier message: 13/05/2005, 03h13

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