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 :

[template] ecrire dans un fichier texte le type de données, puis le relire


Sujet :

C++

  1. #21
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par poukill Voir le message
    Bien sûr que ça ne marche pas! On sort du bloc de déclaration de cam2 !

    Effectivement, tu soulèves quand même le problème: pour récupérer la caméra en dehors du bloc c'est pas coton... Car on peut pas définir quoique ce soit en dehors su switch, ne connaissant pas le type a priori de la caméra...
    ouf, c'était pour cela ma méthode .
    En faite en premier lieux, je pense qu'il te manque une class parente pour utiliser le polymorphisme. Aprés y as plein de manière differente, a toi de voir laquel tu prefere

  2. #22
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Mais j'ai déjà une classe parente (cf pièce jointe : diagramme UML avant de rajouter les template)
    C'est d'ailleurs avec elle que je gérai tout par pointeur... Maintenant avec les template je peux plus...

    Je vais étudier ta solution... Il faut que je pousse mon raisonnement plus loin...

    EDIT : ton exemple marche car ta classe mère est non virtuelle. Or j'ai plein de cas à gérer alors dans mon cas a priori il faudrait qu'elle soit virtuelle aussi...
    Images attachées Images attachées  

  3. #23
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par poukill Voir le message
    Mais j'ai déjà une classe parente (cf pièce jointe : diagramme UML avant de rajouter les template)
    C'est d'ailleurs avec elle que je gérai tout par pointeur... Maintenant avec les template je peux plus...


    EDIT : ton exemple marche car ta classe mère est non virtuelle. Or j'ai plein de cas à gérer alors dans mon cas a priori il faudrait qu'elle soit virtuelle aussi...

    Tu pourrai ajouter une class interface (virtuel pure par exemple) entre les deux.

    Code C++ : 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
    class camera
    {
    //fonction et variable commune a toute les camera
    }
     
    //class intermediaire qui donne l'interface de ta class template
    class camera_virtuelle_interface : public camera
    {
    public :
    //fonction  et variable commune a toute les camera virtuelle. exemple:
     virtual Setposition(float * p) = 0;
     virtual Initialisation(..) =0;
     virtual OpenFile(std::string fileName) =0;
     .
     .
     .
    }
     
     
    template< class T>
    class camera_virtuelle : public camera_virtuelle_interface
    {
    //implémentation des fonctions de l'interface 
    //plus les fonction et variable lié au type T 
    }
    Le plus dure est d'avoir une interface cohérente et suffisante pour être utilisé par polymorphisme,qui fait totalement abstraction du type de ta template.

    Juste une question, tu fait du lancer de rayon? de la simulation? ou c'est pour interfacer des camera?

  4. #24
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    La diagramme que tu viens de voir est un gestionnaire de caméra. Effectivement, les caméras sont réelles et implantées dans un système complexe expérimental. (à part la caméra virtuelle que j'ai créer pour simuler une vraie caméra à partir d'un fichier issu d'un enregistrement d'une vraie caméra)
    Mon boulot est de récupérer ces données et de faire des traitements physiques dessus.

  5. #25
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par poukill Voir le message
    La diagramme que tu viens de voir est un gestionnaire de caméra. Effectivement, les caméras sont réelles et implantées dans un système complexe expérimental. (à part la caméra virtuelle que j'ai créer pour simuler une vraie caméra à partir d'un fichier issu d'un enregistrement d'une vraie caméra)
    Mon boulot est de récupérer ces données et de faire des traitements physiques dessus.
    Toute tes camera fournissent des image en int ou float ou char ou... et sont template ?
    Dans ce cas la, peut être qu'il faudrait plutôt que tes camera ne soit pas template, mais unique la class image?
    Si seul camera_virtuelle est template, cette class semble incoherente avec les autre

  6. #26
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Hum... Tu me fais me poser de bonnes questions, et tu as raison.

    Les caméras que je gère sont des caméras entre 10 et 14 bits... Donc la structure que j'avais initialement retenue était UInt16, évidemment.
    Sauf qu'est arrivé de nouveaux besoins pour les physiciens (affichage en nombre de photons et autre), ainsi les valeurs des images après traitement atteignent 10^21... ET moi je stocke dans ma classe une image (courante) en UInt16.
    Comme tu viens de le souligner, il serait effectivement bon de découpler traitement et acquisition de données... Quitte à mettre template une seule fonction membre de la classe Camera (getImage en l'occurence)

    Merci pour tes questions intéressées et intéressantes mongaulois

Discussions similaires

  1. lire/ecrire dans un fichier texte
    Par mello dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 13/06/2006, 12h35
  2. [VB.net]ecrire dans un fichier text
    Par grand_prophete dans le forum Windows Forms
    Réponses: 12
    Dernier message: 04/05/2006, 16h37
  3. Réponses: 6
    Dernier message: 17/12/2005, 19h27
  4. [VB.NET] Ecrire dans un fichier texte...
    Par robert.michel9 dans le forum VB.NET
    Réponses: 5
    Dernier message: 04/12/2005, 14h35
  5. Ecrire dans un fichier text en MFC
    Par soufienne dans le forum MFC
    Réponses: 6
    Dernier message: 05/10/2005, 16h54

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