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 :

Passer du .Net au C++


Sujet :

C++

  1. #1
    Membre éclairé
    Avatar de Floréal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 456
    Par défaut Passer du .Net au C++
    Voila, apres m'etre rendu compte des inconveignant du .Net (le framework doit être installé sur la machine de l'utilisateur), j'ai décidé de consolider mes connaissances en c++, c'est pourquoi je me pose ces questions:

    1 - Les accesseurs
    En VB .NET on peut creer des accesseurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Property Nom_De_L_Accesseru() As Type
       Get
          return Propriete_Privee
       End Get
       Set(ByVal Value As Type)
          Propriete_Privee = Value
       End Set
    End Property
    Quelle est l'équivalant en C++? Ca me simplifierait grandement la vie: plutot que de mettre Multes methode GetPropriet1(), SetPropriet1(int machin) Get Propriete2() etc.

    2 - Les collections
    En VB .Net on tuilise des taleaux d'objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim MaCollection As ArrayList
    En fait c'est un tableau qui contient des éléments de type Object. Un type Object peut être n'importe quoi, c'est une sorte de Jocker, quand on connais pas le type de telle ou telle variable. Si bien qu'un ArrayList, à l'indice 0 peut contenir un String, à l'indice 1, un Intguer, à l'indice 3, un objet de type Tartampion (une classe définie plu tot)...
    Existet'il un équivalent en C++?

    Pour le moment je n'ai que ces questions qui me viennent à l'esprit.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    1. La manière d'écrire des accesseurs est la même (il te faudra un SetMachin et un GetMachin). Mais pour l'exemple que tu cites il vaudra mieux mettre ta variable directement publique et oublier les accesseurs. Jette un oeil à la FAQ C++ qui en parle longuement.

    2. En C++ le typage est plus fort, et on ne stockera des objets différents dans un même conteneur que dans des cas très rares. Pour ça la seule solution est d'utiliser du void*, ou un peu mieux : boost::any, qui encapsule ça de manière plus propre. Mais comme je t'ai dit, en général on stocke soit des objets du même type, soit parfois des pointeurs sur des objets polymorphiques.

  3. #3
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    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 292
    Par défaut
    Pour la première question, je rajouterai de chercher dans le forum visual un fil qui doit avoir moins de deux jours sur le passage de BCB à VC.
    La mise en place de propiétés a été succinctement abordée.

    Mais de toutes façon, lis d'abord la FAQ.
    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
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Pour le 2/,
    tu cites ça comme un avantage mais c'est plutot un inconvénient pour moi. Le moindre tableau de T il faut caster partout ton code. Ca gave vite de devoir créer son propre type tableau de T a chaque fois. Là dessus C++ est bien meilleur grâce aux templates, et d'ailleurs les generics vont corriger ce point avec la prochaine release de .Net.
    Jette un oeil à l'exemple sur vector dans la FAQ.
    Ce n'est pas une histoire de typage, qui est très fort aussi dans .Net. C'est juste que tous les objets héritent de System.Object, et donc on peut faire du polymorphisme. En C++ c'est pas le cas. Donc faut créer ta classe de base dont tout le monde hérite. Mais ça a aussi des inconvénients. Par exemple un tableau de int sera bien plus gros en .Net car c'est des Int32 et ils héritent de ValueType et ça alourdit, en plus de tout le tsointsoin pour le garbage collecting.

    En ce qui concerne la redistribution de .Net, c'est plutot la taille qui est gênante. Un prog C++ (ou autre) aussi tu as souvent des choses à refiler.

  5. #5
    mat.M
    Invité(e)
    Par défaut
    .NET c'est une plateforme de Microsoft qui reprend des méchanismes des MFC notamment ; Il me semble que l'architecture Doc/Vue existe avec .NET ( VB je sais pas mais C# j'en suis presque sûr)

    Donc ta question est un peu plus spécifique technos microsoft que C++ en général.
    Pour les collections d'objet pour répondre de manière pratique tu as la STL en C++ ou bien les MFC avec VC++ ( ou bien VCL avec Borland )


    En VB .Net on tuilise des taleaux d'objet
    Existe t'il un équivalent en C++?
    Mes prédecesseurs ont largement répondu , c'est assez rarement utilisé.
    Sous Microsoft il existe le type _variant pour la technologie COM afin d'assurer une compatibilité de type entre les languages : une dll COM peut-être exploitée sans pb avec VB , Delphi etc.

    Mais pour passer au C++ je crois que le mieux est tout de même de partir avec les bases

  6. #6
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par mat.M
    .NET c'est une plateforme de Microsoft qui reprend des méchanismes des MFC notamment ; Il me semble que l'architecture Doc/Vue existe avec .NET ( VB je sais pas mais C# j'en suis presque sûr)
    Comment ça ça reprend les MFC? Pour Doc/Vue non y'a rien il me semble. Les delegates ça change la donne.
    Y'a eu un article d'un mec (non MS) en réponse à une attaque de IBM-Java à ce sujet (MVC) il me semble, mas je le retrouve pas.

  7. #7
    CGi
    CGi est déconnecté
    Expert confirmé
    Avatar de CGi
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 061
    Détails du profil
    Informations personnelles :
    Localisation : France, Allier (Auvergne)

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 061
    Par défaut
    Le .Net et la VCL ont beaucoup plus de ressemblance.
    Tellement que beaucoup de méthode porte le même nom.
    (C'est le même chef de projet qui à dirigé le développement des deux.)

    J'ai connu BCB avant .Net
    Mais en passant de l'un à l'autre on a l'impréssion avancé en terrain connu.
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)

  8. #8
    mat.M
    Invité(e)
    Par défaut
    Comment ça ça reprend les MFC? Pour Doc/Vue non y'a rien il me semble.
    du calme du calme,

    Dans les samples pour C# , il ya Sketch radicalement le même exemple que pour VC++/MFC .
    Et c'est plus lent et moins performant....sous C# évidemment

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/03/2006, 20h06
  2. Réponses: 3
    Dernier message: 28/02/2006, 08h43
  3. [VB.NET] Passer une valeur de control entre deux form
    Par TheMacleod dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/12/2005, 11h07
  4. Réponses: 8
    Dernier message: 30/05/2005, 13h55
  5. [Kylix] Débrider Kylix sans passer par le Net
    Par BXDSPORT dans le forum EDI
    Réponses: 1
    Dernier message: 23/03/2003, 10h52

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