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 :

définir un opérateur


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 13
    Points : 9
    Points
    9
    Par défaut définir un opérateur
    comment définir une fonction comme sizeof, qui accepte un ou des paramètre(s) non inclu(s) dans des parenthèses: ce serait comme si on déclarait un nouvel opérateur ?

    exemple: fonction a;

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yessine66 Voir le message
    comment définir une fonction comme sizeof, qui accepte un ou des paramètre(s) non inclu(s) dans des parenthèses: ce serait comme si on déclarait un nouvel opérateur ?

    exemple: fonction a;
    Déjà sizeof n'est pas une fonction. Donc "définir une fonction comme sizeof" ne veut rien dire.
    On passe les arguments à une fonction au travers de parenthèses. C'est gravé dans le marbre de la norme du C donc on peut pas faire autrement.

    En C++, tu peux définir des objets et définir des opérateurs sur ces objets. Par exemple tu peux définir l'objet fraction qui aura comme membre un entier (le numérateur) et un autre entier (le dénominateur). Puis tu peux définir l'opérateur "+" dans lequel tu fais tout le travail de mettre les deux dénominateur en commun et calculer les numérateurs.
    Ensuite (sous réserve que tu aies aussi défini l'opérateur "=") tu peux écrire c=a+b avec a, b et c étant définis comme "fraction".
    MAIS c'est en C++...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Merci, je me doutais déjà que c'était une question débile, mais il n'y avait qu'un moyen pour le savoir.
    lol

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 375
    Points : 23 634
    Points
    23 634
    Par défaut
    Bonjour,

    Citation Envoyé par yessine66 Voir le message
    Merci, je me doutais déjà que c'était une question débile.
    Demander est effectivement le meilleur moyen de savoir (sous réserve d'avoir fait preuve d'un minimum de recherches personnelles préalables :-) ).

    En revanche, ce n'est pas une question débile du tout. Effectivement, le C s'en tient à la définition de fonctions ordinaires et si le C++ permet de redéfinir les opérateurs, cela ne concerne que les opérateurs existants. Ça se comprend dans le sens où tout ce qui irait au delà constituerait une redéfinition du langage lui-même, avec composition d'une grammaire associée et résolution des ambiguïtés.

    Cela dit, si sizeof est un mot-clé réservé du langage et n'est pas une fonction au sens C du terme, c'en est quand même une du point de vue mathématique, dans le sens où c'est une expression évaluable, d'une part, et dont la valeur est justement fonction de son paramètre. Et c'est le seul mot-clé réservé qui soit dans ce cas.

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/11/2014, 16h16
  2. Réponses: 3
    Dernier message: 08/01/2008, 16h53
  3. Ne pas définir d'opérateur de tri dans une map
    Par Muetdhiver dans le forum SL & STL
    Réponses: 5
    Dernier message: 14/11/2007, 14h38
  4. [imprecis]Réaliser a^n avec seulement l'opérateur d'addition
    Par Amon dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 08/11/2002, 22h22
  5. Comment définir le type matrice ?
    Par charly dans le forum Langage
    Réponses: 7
    Dernier message: 15/06/2002, 21h01

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