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 :

Programmation objet en fortran et type derives


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 25
    Par défaut Programmation objet en fortran et type derives
    Bonjour a tous.


    J explore les possibilites de Fortran 2003/2008 en programmation objet et
    je fais fasse a une situation que je ne comprends pas...

    Voici un petit exemple ou je cree une classe points(x,y) avec 2 methodes associees.
    Les methodes sont censees faire exactement la meme chose, a savoir creer un nouvel objet point a gauche de
    l objet parent...
    Dans la methode getleft1, j' assigne explicitement les variables x et y du nouvel objet. Les choses sont relativement simple puisque je n ai que x et y a definir.
    Mais, bon il peut arriver que l objet soit plus complexe dont j ai voulu tester dans la methode 2 une initialisation du nouvel objet au contenu de l objet parent...mais ca ne semble pas marcher... j obtiens une valeur aleatoire pour la variable y qui n etait pas assignee explicitement.

    Quelqu un pour m eclairer sur ce sujet?

    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
     
    module points2d
      implicit none
     
      type :: points
        integer :: irow
        integer :: icol
      contains
        procedure :: left => getleft 
        procedure :: left2 => getleft2 
      end type points
     
    contains
     
      type(points) function  getleft(this)
        class(points), intent(in) :: this
        getleft%irow = this%irow
        getleft%icol = this%icol
      end function
     
      type(points) function  getleft2(this)
        class(points) :: this
        getleft2 = this
        getleft2%icol = this%icol
      end function
     
    end module points2d
     
     
    program test
      use points2d
      implicit none
     
      type(points) :: center
      type(points) :: left
     
      center = points(1,1)
      print*, center%irow, center%icol
     
      left = center%left()
      print*, left%irow, left%icol
     
      left = center%left2()
      print*, left%irow, left%icol
     
    end program

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Par défaut
    Salut.
    Il y a des erreurs à la compilation dans la fonction getleft2.
    Ça ne me semble pas possible de le faire de cette manière puisque la variable polymorphique est située à gauche de l'affectation. Il faut affecter explicitement pour chaque attribut comme dans getleft.
    Ou alors surcharger l'opérateur d'affectation.

Discussions similaires

  1. [Débutant(e)][Conception] prob de programmation objet
    Par gregorian dans le forum Général Java
    Réponses: 3
    Dernier message: 07/07/2005, 11h20
  2. Questions sur la programmation objet en Delphi
    Par Manopower dans le forum Débuter
    Réponses: 20
    Dernier message: 15/06/2005, 15h39
  3. Programmer OO en Fortran
    Par johnstanp dans le forum Fortran
    Réponses: 4
    Dernier message: 09/04/2005, 14h27
  4. [ASP] Programmation objet ?
    Par Hell dans le forum ASP
    Réponses: 6
    Dernier message: 07/04/2005, 15h28
  5. Problème programmation objet
    Par Contrec dans le forum MFC
    Réponses: 54
    Dernier message: 30/03/2005, 11h30

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