Partage
  • Partager sur Facebook
  • Partager sur Twitter

a

a

Sujet résolu
7 avril 2018 à 17:35:53

a

-
Edité par 238 7 juillet 2024 à 11:38:52

  • Partager sur Facebook
  • Partager sur Twitter
7 avril 2018 à 17:45:23

Lu'!

Au niveau du changement de nombre d'attributs, techniquement ça ne change rien : ton pointeur c'est juste une adresse, qu'il pointe sur une zone mémoire d'une quelconque taille ne change rien.

Et pourquoi c'est autorisé, c'est justement pour pouvoir tirer parti de la notion de polymorphisme.

  • Partager sur Facebook
  • Partager sur Twitter

Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

7 avril 2018 à 18:23:44

a

-
Edité par 238 7 juillet 2024 à 11:39:01

  • Partager sur Facebook
  • Partager sur Twitter
7 juillet 2024 à 15:36:27

Bonjour, on n'efface pas ses messages après avoir reçu de l'aide, cela rend la discussion incompréhensible. Je recopie le message d'origine et ferme ce sujet.

238 a écrit:

Bonjour,

Pourriez vous m'eclairer sur cette petite question. Je voudrais savoir, comment un objet B, hérité de A, arrive à être contenue dans un pointer de type A?

Exemple:

class A{
private:
    int varA;
public:
    A(){
    }
};
 
class B : public A{
private:
    int varB;
public:
    B(){
    }
};
 
int main(){
    A *a = new B; // Autorisé mais pourquoi?
}

B à un attribut en plus, et pourtant, il est stocké dans un pointer type A qui lui, n'as que une variable possible varA (Et B en a 2, varA et varB).

PS: Je n'utilise pas de pointer nue, c'est juste une question coté technique. Merci :)

Arta.

  • Partager sur Facebook
  • Partager sur Twitter