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 :

fonctions en c++


Sujet :

C++

  1. #1
    Débutant
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Points : 0
    Points
    0
    Par défaut fonctions en c++
    Bonjour,
    comment définir les opérateur [] et <<, >> (les cheverons) en C++? De manière générale.
    Merci par avance.

  2. #2
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 714
    Points : 2 364
    Points
    2 364
    Par défaut
    Bonjour.

    Tu trouveras la liste des opérateurs et leurs déclarations dans cette page.

  3. #3
    Membre chevronné
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    Mai 2010
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 548
    Points : 1 753
    Points
    1 753
    Par défaut
    Bonjour
    De manière générale ont redéfini les opérateurs en fonction de ses objectifs ou besoins. Si c'est pour redéfinir un opérateur de décalage à gauche pour effectuer un décalage à gauche cela n'a aucun intérêt, mais en revanche si c'est pour rediriger un flux alors cela peut être une raison pour redéfinir l'opérateur. D'un autre cotez, vous êtes sur un très bon site alors pourquoi ne pas faire quelque petite recherche et eurêka lire ceci ?
    à bientôt

  4. #4
    Débutant
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Points : 0
    Points
    0
    Par défaut
    Bonjour,
    alors voilà, j'ai une classe de vecteur que l'on nommera A, et je souhaite définir des surcharges d'opérateurs pour: +, *, et l'opérateur d'affectation =.
    Voici ce que j'ai trouvé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //Déclaration et définition de l'opérateur +
     
    A operator + (const A & v) const
    {
    A b(n);
    assert(n==v.n);
    for(int i=0;i<n;i++) b[i]=v[i]+w[i];
    return b;
    }
    pour l'opérateur * (qui est la multiplication d'un scalaire par un vecteur, à gauche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //Déclaration est définition de l'opérateur *
    A operator * (double &v) const
    {
    vecteur b(n);
    for(int i=0;i<n;i++) b[i]=w[i]*v;
    return b;
    }
    pour l'opérateur d'affectation =

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //Déclaration et définition de l'opérateur d'affectation
    A& operator = (const A &v)
    {
    assert(n==v.n);
    for(int i=0;i<n;i++) w[i]=w[i]+v.w[i];
    return *this;
    }
    Ma question est: pour retenir toutes ces définition, il faut que je puisse comprendre leurs logiques, et ça je n'y arrive pas.
    1- pour l'opérateur +: on apprend au compilateur comment aditionner deux vecteurs, composante par composante: comment est-ce qu'il va savoir qui est w[i]? et comment est ce qu'on dispose les const et les &?
    2- pour l'opérateur *; on veut dire par double que c'est un scalaire. Par contre, je ne cherche pas à faire un produit scalaire, mais multiplier un scalaire par un vecteur. Comment il va faire ça?
    3- pour l'opérateur d'affectation, en fait qu'est ce qu'on doit lui exepliquer? comment disposer les & et const? et que signifi *this? (j'ai lu que ca veut dire qu'il demande à retournerl'objet), mais pourquoi *? et pourquoi pas return w?
    Je vous remercie par avance.

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 174
    Points : 12 301
    Points
    12 301
    Par défaut
    @hinaneee tu spam un nombre "considérable" de sujet sur ce forum et sur d'autres forums d'entre-aides.
    Et à chaque fois, c'est la même chose, on te dit de reprendre les bases.
    Tu ne t'en sortiras pas sans une très sérieuse révision des bases du C++.
    On te l'a dit plusieurs fois, et c'est vraiment sérieux, révises.

    A ta décharge, la référence que tu utilises est bien pourrie et te fait prendre de bien mauvais réflexes, comme ces putains d'assert qui n'ont rien à faire dans une classe qui devrait être template, de base.

  6. #6
    Débutant
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Points : 0
    Points
    0
    Par défaut
    je suis entrain d'essayer de comprendre pourquoi on les définit de la sorte pour pouvoir les mémoriser car j'oublie à chaque fois. Je cherche une explication logique, je ne demande pas à ce qu'on écrive mon programme, je veux juste qu'on m'explique. Voilà, si quelqu'un peut m'expliquer comment on définit de manière simple et logique ces opérateurs pour des vecteurs, et me montrer des écritures plus modernes, je le remercie par avance.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 128
    Points : 33 055
    Points
    33 055
    Billets dans le blog
    4
    Par défaut
    - le spam est très mal vu
    - tes questions sont en deçà des bases, on apprend à marcher avant de vouloir courir
    - on t'a déjà répondu un nombre incalculable de fois sur un de tes trop nombreux sujets
    - sais-tu ce qu'est un operator ? ou bien c'est juste un mot-clé que tu balances ?
    - sais-tu ce qu'est un vecteur comme tu l'entends ? ou bien tu ne sais pas non plus l'objet mathématique ?
    - où est la difficulté à multiplier par X tous les éléments d'un tableau ?
    - ou bien tu ne sais même pas créer ledit tableau ?
    - ou alors c'est son parcours le problème ?
    - class A : public std::valarray {};;


Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Fonction API
    Par margilb dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/07/2002, 11h11
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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