Pour ceux qui ont suivi la discussion precedente, vous devez vous dire que je dois etre allergique au new.
Alors cette fois ma question est:
Si on declare une classe de la facon suivante:
Si on fait par ailleurs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Class myClass { int toto; int function(int a); } int MyClass::function(int a) { return a; }
Ca marche !!! Et on a bien b = 10 !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 MyClass* myObject; int b; b = myObject->function(10);
Par contre
La on se prend un memory access violation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4MyClass* myObject; int b; b = myObject->toto;
Alors pourquoi peut-on acceder aux methodes d'un objet sans l'instancier, en definissant simplement un pointeur sur un type ?
Tant que la methode ne touche pas aux variables de la classe, en gros ca marche.
C'est normal docteur ? Comment ca marche tout ca?
Qu'est ce qu'il y a reelement dans le pointeur myObject avant l'instance d'un new ? Vers quoi pointe-t-il ?
Partager