2010-04-22 6 views
0

je 3 fonction dans ma classe B. Ces fonctions trois doivent accéder à la fonction de membre d'une autre classe A.accès OBJECT de différentes fonctions dans VC++

Je l'ai fait en créant objet de la classe A dans le constructeur de classe B et essayé d'accéder à cet objet dans les fonctions de classe B. Mais son erreur d'affichage.

Comment puis-je évaluer le même objet dans ces trois fonctions. Où je dois créer un objet de classe A

B::B() 
{ 
    A a; 
} 
B:: function() 
{ 
a.fun(); //fun belongs to class A 
} 
B:: function1() 
{ 
a.fun1(); //fun1 belongs to class A 
} 

J'obtiens l'erreur, comment puis-je mettre en œuvre le même où je peux accéder à un objet à la fois la fonction.

Répondre

1

Vous devez faire a une variable membre de la classe B comme ceci:

class B 
{ 
private: 
    A a; 

// ... 
} 

Cela va le rendre disponible à toutes les fonctions membres de B.

(Rendre private n'est pas nécessaire - la décision de rendre private, protected ou public dépend si vous voulez le rendre disponible que dans B, au sein des classes de dérivés B et B, ou partout.)

3

Vous devez ajouter A en tant que membre de votre classe B et non en tant que variable locale du constructeur B. Essayez ceci:

class B 
{ 
public: 
    B(); 
    void function1(); 

private: 
    // This is your member, and you can access it from all of B's methods. 
    A m_a; 
}; 
Questions connexes