2009-12-16 4 views
0

Voici le problème auquel je fais face, est-ce que quelqu'un a une solution?Passer une référence d'une classe de base à une autre fonction

Class A: public class B 
{ 
// I want to pass a reference of B to Function 
} 

void ClassC::Function(class& B) 
{ 
    //do stuff 
} 
+1

mal formulée, mais en lisant entre les lignes, essayez d'appeler la fonction() * avec ce que le paramètre. –

Répondre

6

La façon dont vous déclarez la classe est faux:

class A : public B // no more class keyword here 
{ 

}; // note the semicolon 

void ClassC::Function(const B &b) // this is how you declare a parameter of type B& 
{ 
} 

Il vous suffit de passer l'objet de type A au Function. Ça va marcher. Il est bon de déclarer le paramètre const si vous souhaitez également prendre des types dérivés. Pour passer l'instance this, vous souhaitez simplement appeler:

classCObject.Function(*this); 
1

Vous avez juste des problèmes avec la syntaxe? Il devrait être

void ClassC::Function(B& b) 
{ 
    b.DoSomething(); 
} 

pour faire b une référence de type B.

+0

Je peux le faire très bien, le problème est de passer le pointeur sur cette fonction – user233320

Questions connexes