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 :

Retour covariant : Copie de this.


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Citation Envoyé par JC_Master
    Bon, je crois que j'ai trouvé dans ton post la plus haute concentration à la phrase carrée de mots que je ne comprends pas, donc il est possible que je dise (encore) une ânerie.
    J'ai l'habitude
    Demande si il y a des trucs particuliers qui te gênent. Les termes que j'ai employés sont ceux qui résument la situation de ta question de départ. Comprendre à quoi ils se rapportent, c'est un peu comprendre des principes de conception assez uniques au C++ sur lesquels tu es en train de buter.


    Si je suis ce que tu m'as dit, ce ne sont pas vraiment des points, plutot des containers de valeurs qui permettent de faire diverses opérations en considérant ces containers comme des points[Dans divers espaces] ou comme de valeurs. Donc il sagirait donc "d'entités mobiles".
    Peut-être. Cela dépend de ton problème. Ce que je voulais dire c'est que un point mathématique, c'est juste une valeur sur laquelle on peut réaliser des opérations mathématiques de base pour obtenir d'autres valeurs -> des nouveaux points.

    Quand je parlais des cast, je pensais a reinterpret_cast, pour par exemple faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Point3d PoinFixeDontLaCopieSerasRetourner;
    return reinterpret_cast<Point1d>PoinFixeDontLaCopieSerasRetourner);
    Ne cherche pas, ce n'est pas possible de la sorte. L'idiome enveloppe-lettre (et éventuelles variantes) (google!) est la seule isssue si tu insistes dans ce tte voie.

    De plus, un reinterpret_cast est un cast qui dit qu'une zone mémoire de plusieurs octets doit être interprétée autrement. On travaille ici au niveau de la séquence d'octets. Autant dire que ce n'est pas compatible avec des objets (et en plus, cela exige de bosser avec des pointeurs)
    Il n'y a pas de moyen de déclarer un type statique (celui officiel: le nom du type de la classe mère) manipulé par valeur (pas de pointeur ou de référence) à travers lequel on veut faire passer un objet dont le type dynamique (type réel de l'objet construit comme étant d'un type fils) est différent et ne sera pas perdu. (sauf enveloppe-lettre qui contourne).


    Après mon point de vue, c'est que JC_Master cherche à avoir une syntaxe propre à la sémantique de valeur alors qu'il manipule une hiérarchie de classes polymorphes. J'ai juste essayé d'expliquer rapidementde quoi il s'agit.
    J'en ai profité pour souligner que les divers points ne se subsituent pas comme cela.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  2. #2
    Membre éclairé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Par défaut
    Donc la seul solution qui me rest pour avoir un code logic, lisible, propre, c'est de suprimmer l'héritage(surtout que niveau code, il n'y a pas grand chose a changer). Mais par contre plus de (*UnPoint2d) = (*UnPoint3d); Il faudras utiliser la surcharge de l'opérateur d'afectation pour établir une convertion(a sens unique pour Point3D->Point2D). Mais comme vous me le répètez depuis le début, mélenger des points 1d avec des points 2d n'a pas de sens. Je gardais quand même un petit espoire de garder ma hiérarchie bizare
    Mes articles Développez | Dernier article : Raytracer en haskell
    Network library : SedNL | Zenol's Blog : http://zenol.fr

    N'oubliez pas de consulter la FAQ et les cours et tutoriels.

  3. #3
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Le problème est ... comment voudrais-tu transformer ton point 3D en point 2D (ou 1D) ?

    Je ne connais pas ton background en math, mais cette réduction de dimension correspond à une projection, comme on dit dans le jargon. Ce qui veut dire que la transformation prend en paramètre non seulement le point 3D, mais aussi espace de dimension <3 dans lequel projeter.
    Même en version ultra simplifiée, que garder dans la transformation 3D à 2D ? x et y ? x et z ? ou y et z ?

    Bref, l'opération d'affectation est inutilisable ici.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  4. #4
    Membre éclairé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Par défaut
    Si on fait une projection, il faut normalement un point depuis le quèl regarder(Je me base sur la modélisation 3D. Pour le rendu finale l'objet est projeter selon la position de la caméra). Mais si on veut reproduire la vue par défault de l'objet 3D sur un plan 2D, il faut garder x et y. Si on veut sur une droite, il faut garder simplement x. Biensur apprès on peut vouloir utiliser y comme absice et x comme ordonée, mais dnas ce cas il faudras modifier sou même les variabes des deux objets, ou utiliser des fonctions de projection(Je sen que je vais m'amuser quand je vais programmer sa).
    Mes articles Développez | Dernier article : Raytracer en haskell
    Network library : SedNL | Zenol's Blog : http://zenol.fr

    N'oubliez pas de consulter la FAQ et les cours et tutoriels.

  5. #5
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Je ne vois pas quand la réduction des coordonnées va servir. A moins que tu veuilles faire tourner toute la scène et le monde avant d'afficher.

    Je partirai plutôt de coordonnées absolues (le repère ne bouge pas), pour ensuite projeter sur le plan de la caméra. Je vois moins d'étapes, la nécessité d'une projection.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. petite question (type de retours covariants)
    Par Jabawock dans le forum C++
    Réponses: 6
    Dernier message: 21/08/2007, 08h06
  2. Références croisées et retour covariant
    Par Genjin dans le forum C++
    Réponses: 5
    Dernier message: 19/05/2007, 19h06
  3. Problème de retour covariant
    Par bountykiller dans le forum C++
    Réponses: 4
    Dernier message: 02/11/2006, 00h41
  4. retour de copy
    Par BigNic dans le forum C++
    Réponses: 20
    Dernier message: 06/12/2005, 09h33
  5. [VC++] Comment autoriser les retours covariants ?
    Par Yellowmat dans le forum MFC
    Réponses: 1
    Dernier message: 28/11/2005, 11h46

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