Bonjour à tous, voilà j'ai deux classe :
Class Base{
//son constructeur;
virtual fct();
};
Class Derive: public Base{
//son constructeur;
virtual fct();
type* m_pDonne;
};
main()
{
Derive* pDerive = new Derive(donne);
Base* pBase(pDerive);
ou
Base* pBase = pDerive;
pBase->fct();//appel la fct de derive typage dynamique;
pBase->m_pDonne;//je pense que ça ne marche pas
pour tricher :
((Derive*)Base)->m_pDonne;
}
ma question est :
est ce que le cast (Derive*)Base fait appel a l'opetrateur = ou autre
chose?.
est ce que la valeur de ((Derive*)Base)->m_pDonne est forcement egale
a celle de pDerive->m_pDonne;
en gros l'acces aux données de la classe fille à partir d'une classe
mère.
merci d'avance.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fabien LE LEZ
On 12 Sep 2003 09:02:05 -0700, (mourad) wrote:
main()
int main()
{ Derive* pDerive = new Derive(donne);
Base* pBase(pDerive); ou Base* pBase = pDerive; pBase->fct();//appel la fct de derive typage dynamique;
OK
pBase->m_pDonne;//je pense que ça ne marche pas
OK
((Derive*)Base)->m_pDonne;
J'imagine que tu voulais écrire ((Derive*)pBase)->m_pDonne;
est ce que le cast (Derive*)Base fait appel a l'opetrateur = ou autre chose?
Certainement pas à Base::operator= ou Derive::operator= de toutes façons, puisqu'il n'y a pas copie d'objet (même s'il y a peut-être copie de pointeur)
est ce que la valeur de ((Derive*)Base)->m_pDonne est forcement egale a celle de pDerive->m_pDonne;
Oui. Ce qui ne veut pas dire que ce soit une bonne méthode pour accéder à m_pDonne.
On 12 Sep 2003 09:02:05 -0700, mohamed92000@hotmail.com (mourad)
wrote:
main()
int main()
{
Derive* pDerive = new Derive(donne);
Base* pBase(pDerive);
ou
Base* pBase = pDerive;
pBase->fct();//appel la fct de derive typage dynamique;
OK
pBase->m_pDonne;//je pense que ça ne marche pas
OK
((Derive*)Base)->m_pDonne;
J'imagine que tu voulais écrire
((Derive*)pBase)->m_pDonne;
est ce que le cast (Derive*)Base fait appel a l'opetrateur = ou autre
chose?
Certainement pas à Base::operator= ou Derive::operator= de toutes
façons, puisqu'il n'y a pas copie d'objet (même s'il y a peut-être
copie de pointeur)
est ce que la valeur de ((Derive*)Base)->m_pDonne est forcement egale
a celle de pDerive->m_pDonne;
Oui. Ce qui ne veut pas dire que ce soit une bonne méthode pour
accéder à m_pDonne.
Base* pBase(pDerive); ou Base* pBase = pDerive; pBase->fct();//appel la fct de derive typage dynamique;
OK
pBase->m_pDonne;//je pense que ça ne marche pas
OK
((Derive*)Base)->m_pDonne;
J'imagine que tu voulais écrire ((Derive*)pBase)->m_pDonne;
est ce que le cast (Derive*)Base fait appel a l'opetrateur = ou autre chose?
Certainement pas à Base::operator= ou Derive::operator= de toutes façons, puisqu'il n'y a pas copie d'objet (même s'il y a peut-être copie de pointeur)
est ce que la valeur de ((Derive*)Base)->m_pDonne est forcement egale a celle de pDerive->m_pDonne;
Oui. Ce qui ne veut pas dire que ce soit une bonne méthode pour accéder à m_pDonne.