begin process at 2010 02 10 07:12:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

Accès à une instance


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Accès à une instance

jeudi 25 janvier 2007 à 17:53:18 | Accès à une instance

Mycado

Salutations,

J'ai mon main, et deux classes (classA et classB). Je crée une instance de classA nommée cal dans mon main.
Mon problème est, que j'aimerai récupérer mes attributs de ca1 dans classB.

Comment puis-je faire ?


Merci d'avance
jeudi 25 janvier 2007 à 18:42:33 | Re : Accès à une instance

laurent1024

Si tu donnais un peu le code des tes classes on pourrait mieux t'aider.
si les attrivuts dans la classeA sont public tu peut faire des ca1.monattribut
sinon tu a peut etre des fonction ca1.getMonAttribut()


++
jeudi 25 janvier 2007 à 18:53:32 | Re : Accès à une instance

Mycado

C'est tout bête (je zappe les includes & cie):

Mon main:

int main() {
    classA ca1;
    ca1.var1 = 10;
}



Ma classA:

class classA {
    private:
    public:
        int var1;
}



Ma classB:

class classB {
    private:
    public:
       int testmethode();
}


int classB::testmethode() {
    // ici j'aimerai récupérer ma variable var1, déclaré dans ma classA
}



J'espère avoir été clair, ça n'est pas évident à expliquer ici
jeudi 25 janvier 2007 à 19:01:59 | Re : Accès à une instance

laurent1024

Ben ilf aut que ta methode "testmethod prennent comme parametre soit un entier soit un objet de type classeA
dans le premier cas ta methode est testMethode(int a)
et tu fait objetB.testMethode(objetA.var1)

soit methode = testMethode (classeA a)
                           dans ta methode int b = a.var1
et a l'appel objetB.testMethode(objetA)

++
jeudi 25 janvier 2007 à 19:06:03 | Re : Accès à une instance

Mycado

Je suis bien d'accord avec ce point, cela permet d'avoir un accès en lecture à la variable var1. Mais cela ne me permet pas de changer sa valeur.

Après coup, je vois que je n'ai pas été trop clair sur ce point. Je ne souhaite pas récuperer cette valeur, mais la modifier.
jeudi 25 janvier 2007 à 19:08:51 | Re : Accès à une instance

laurent1024

Dans ce cas utilise des pointeurs, ou meiux des références
++
jeudi 25 janvier 2007 à 19:13:09 | Re : Accès à une instance

Mycado

Pointeurs/références, ça fait peur ça. Dans mon projet réél, var1 est une matrice.
Une matrice de pointeurs pour ma première semaine de c++, c'est mal :(

Merci de ton aide laurent :)
jeudi 25 janvier 2007 à 19:15:32 | Re : Accès à une instance

laurent1024

Utilise les reférences c'est hyper simple. Dans ta fonction tu mets int & var au lieu de int var et apres tu manipule directement la variable var comme si c'etait une variable locale
jeudi 25 janvier 2007 à 19:26:11 | Re : Accès à une instance

Mycado

Facile quand c'est une basique variable int, mais quand c'est une matrice, c'est moins drole :(
jeudi 25 janvier 2007 à 20:29:07 | Re : Accès à une instance

yann_lo_san

Tout dépend de la relation qu'ont les classes entre elles.
Si B est un A           // héritage
Ou B à un A            // agrégation
ou A est ami de B    // à besoin de
ou A est publique     // N'importe qui peut modifier les vars de A

Dans ton exemple : tout est public donc :
 
int classB::testmethode(classA& a)
{
   a.var1 = 10;
}

Meme résultat avec :
classB
{
   friend classA;
};

// héritage

classB : public classA
{
   int testmethode() 
   {
      var1 = 10; // accede directement à var1
   }
}:

// agregation

classB
{
   classA m_unA;

   int testmethode() 
   {
      m_unA.var1 = 10; // accede à var1
   }
};


1 2

Cette discussion est classée dans : instance, accès, main, classa, classb


Répondre à ce message

Sujets en rapport avec ce message

Question con [ par coyote ] J'ai 2 classes: ClasseA et ClasseBClasseA possede une variable de type ClasseB, et ClasseB possede une variable de type ClasseA. Comment faire pour qu Classes et heritage [ par Darkneon ] Allo a tous,J'ai deux classes comme suitclass ClassA {private:char *a1;char *a2;public:void FuncA();};class ClassB : public ClassA {private:char *b1;c fonction qui initialize une instance de classe sans allocation dynamique [ par mmaximum ] Bonjour à tous,J'ai un petit problème que je n'arrive pas à résoudre: On considère une classe ClassA et une fonction FunctionA.Le constructeur de Clas Visibilité de variables c [ par Moomoon07 ] Bonjour,Voici mon problême :Mon programme possède un main et 3 modules : main.cpp, m1.cpp, m2.cpp, m3.cppmain.cpp inclut m1.h, m2.h et m3.hChacun de c [C++] Débutant [ par Arnold59 ] Bonjour,Je développe parfois en Java (Java version JDK 1.6 update 7), je souhaites apprendre le C++, et j'ai acheté le livre "Le langage c++" de l'édi Problème en C++ [ par Farqual ] Bonjour, je viens de me lancer dans le cpp mais j'ai un problème au niveau de la compilation d'un fichier source en un .exe j'apprend avec un livre et Visual C# -tester un paramètre passé en ligne de commande. [ par XVAudio ] Bonjour,Nouveau en visual C#, j ai créé une appli windows et aimerai exploiter un paramètre passé en ligne de commande.Après avoir visité msdn "Main() Accès disque dur [ par JejeLand ] Bonjour,J'utilise les fonctions ReadFile et WriteFile pour lire et écrire sur un disque dur. Tout va bien tant que le disque ne contient pas de mauvai Un petit coup de main, svp [ par developpeurvb ] Bonjour,Je développe un client ftp et sftp, en fait je recherche une bonne ame qui aurait un serveur sftp et qui pourrait me mettre un compte a dispo probleme link lib [ par unionx ] salut j'essai de creer ma library(.lib), le probleme c'est quand je veux utilise ma .lib sous vc 6 ou vc 2008 ça marche pas. vc 6 me donne ce proble


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales