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++/CLI Discussion :

Acceder aux attributs de la classe m�re


Sujet :

C++/CLI

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 84
    Par d�faut Acceder aux attributs de la classe m�re
    Bonjour,

    Je suis � la recherche d'une solution afin de pouvoir exploiter dans diff�rentes classes, une m�me donn�e commune.
    Je pensai cr�er une classe "application" dont un attribut serait "cheminApplication", et de construire mes nouvelles classes en les h�ritant de ma classe "application".
    A chaque fois que j'en ai besoin dans mes classes fille, j'acc�de � l'attribut "cheminApplication" de ma classe m�re.
    Est-ce une bonne solution ? Feriez-vous diff�rement ?

    Mon exemple me donne un r�sultat null.
    Comment acc�der depuis mon traitement spool � l'attribut

    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
     
    int _tmain(int argc, _TCHAR* argv[])
    {
       application ^ myApplication = gcnew application;
       spool ^ mySpool = gcnew spool;  
     
       myApplication->cheminApplication = *argv;
     
       mySpool->traitementSpool();
    };
     
     
     
    void application::afficherChaineApplication()
    {
    	printf("Chemin application : %ls\n",cheminApplication);
    };
     
    void spool::traitementSpool()
    {
    	printf("Chemin spool : %ls\n",cheminApplication);
    };

    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
     
    ref class application 
    {
    public:  
    	_TCHAR* cheminApplication;
    	void afficherChaineApplication();
     
    };
     
     
    ref class spool : public application
    {
    public:
    	void traitementSpool();
    };

  2. #2
    Membre Expert Avatar de ed73170
    Homme Profil pro
    D�veloppeur ind�pendant
    Inscrit en
    Mai 2009
    Messages
    765
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 63
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur ind�pendant

    Informations forums :
    Inscription : Mai 2009
    Messages : 765
    Par d�faut
    Bonjour,

    Si tu veux acc�der aux m�mes donn�es, ce que tu proposes ne peut pas marcher. En effet, lorsque tu instancies tes classes d�riv�es, tu instancies �galement ta classe de base. myApplication->cheminApplication ne pointe donc pas au m�me endroit que mySpool->cheminApplication et il est logique que mySpool->cheminApplication soit null puisque tu ne l'as pas affect�.

    Pour partager des donn�es, tu peux utiliser une classe statique ou un singleton auxquels tu pourrais acc�der depuis chacun de tes objets.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 84
    Par d�faut
    Impeccable Merci, avec une classe statique ca fonctionne.
    Merci encore.

  4. #4
    Membre �m�rite
    Avatar de Da�manu
    Homme Profil pro
    D�veloppeur touche � tout
    Inscrit en
    Janvier 2011
    Messages
    736
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur touche � tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 736
    Par d�faut
    Bonjour.

    Inutile de passer par une classe statique ou un singleton, il suffit simplement de mettre l'attribut en static pour qu'il soit commun � toutes les instances (c.f. la FAQ).

    Cependant, si plusieurs instances peuvent acc�der � la m�me donn�e en lecture et en �criture, il faudra faire attention aux probl�mes de concurrence. En revanche, si il y a une �criture au d�but, puis uniquement des lectures, il n'y aura pas ce soucis.

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Au passage, pour �viter des soucis, je te conseillerais de bosser en String^ le plus t�t possible; et en fait, d'utiliser la version manag�e du main() (int main(cli::array<System::String^>^ args)) plut�t que cette version qui date de C.

    Autre chose, argv[0] ne contient pas le chemin du programme, mais seulement ce qui a �t� tap� pour le lancer.
    Le mieux pour obtenir le chemin du .exe en .Net, c'est de passer par la classe System::Reflection::Assembly.

    Un truc du genre System::Reflection::Assembly::GetEntryAssembly()->CodeBase devrait te donner le chemin de l'EXE, et si ce n'est pas ->CodeBase, alors ce doit �tre ->Location.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 84
    Par d�faut
    Merci !

Discussions similaires

  1. comment acceder aux variables de la classe M�re ?
    Par vacknov dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 01/08/2007, 19h30
  2. [XSLT] Acceder aux attributs
    Par azertyman dans le forum XSL/XSLT/XPATH
    R�ponses: 2
    Dernier message: 28/09/2006, 12h53
  3. R�ponses: 1
    Dernier message: 18/08/2006, 10h34
  4. [vb.net 2.0]Acceder aux variable d'une classe
    Par kissskoool dans le forum Windows Forms
    R�ponses: 8
    Dernier message: 21/06/2006, 19h54
  5. R�ponses: 16
    Dernier message: 07/02/2006, 14h19

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