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

Fortran Discussion :

Surcharge d'operateur


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 84
    Par défaut Surcharge d'operateur
    bonjour
    est ce que quelqu un peut me donner mes erreurs sur ce code
    et m'aider a les corriger :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    module mod_vector3
        TYPE vector3d
            real*8 x
            real*8 y
            real*8 z
        END TYPE
     
    !       Surcharge des operateur "+" 
    !       -----------------------------------
        interface operator(+)
            module procedure add_vector3d
        end interface
     
        contains
     
        function add_vector3d(a,b)
            TYPE(vector3d),intent(in)   :: a,b
            TYPE(vector3d),intent(out)  :: add_vector3d
            add_vector3d%x=a%x+b%x
            add_vector3d%y=a%y+b%y
            add_vector3d%z=a%z+b%z
        end function add_vector3d
    end module mod_vector3
     
     
     
    program test
    implicit none
    use mod_vector3
     
    integer  j
    TYPE(vector3D) AB
    TYPE(vector3D) CD
    TYPE(vector3D) EF
     
     
    write (*,'(A)') "  "
    write (*,'(A)') " Test"
    write (*,'(A)') "  "
     
    do j=2,5
    !Test operateur + sur  vector3
        AB%x=j
        AB%y=j
        AB%z=j
     
        CD%x=2
        CD%y=2
        CD%z=2
        write (*,*) " AB " , AB%x, " ", AB%y, " ", AB%z, " "
     
        EF = AB+CD
        write (*,*) " add EF " , EF%x, " ", EF%y, " ", EF%z, " "
     
    end do
    write (*,'(A)') "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
     
    end program test
    Merci d'avance pour votre aide

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Par défaut
    Tu souffre d'excès de paresse ?

    2 erreurs et 1 warning

    Erreur: TYPE(vector3d),intent(out) :: add_vector3d

    Les intent sont réservés aux dummy arguments. Tu ne dois pas dire que le résultat de la fonction est intent(out)

    Erreur: use mod_vector3

    Les use doivent précéder les implicit

    Warning: real*8 n'est pas standard. real (8) est mieux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. est ce possible de surcharger les operateurs
    Par dietrich dans le forum Delphi
    Réponses: 5
    Dernier message: 26/08/2006, 11h15
  2. Surcharge d operateur ==
    Par flipper203 dans le forum C++
    Réponses: 15
    Dernier message: 05/07/2006, 01h54
  3. [POO] surcharge d'operateur
    Par wamania dans le forum Langage
    Réponses: 6
    Dernier message: 20/04/2006, 14h31
  4. surcharge des operateurs de flux
    Par icer dans le forum C++
    Réponses: 6
    Dernier message: 22/02/2006, 09h02
  5. [POO] Surcharge d'opérateurs []
    Par Amnesiak dans le forum Langage
    Réponses: 28
    Dernier message: 11/11/2005, 12h44

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