Declarer un pointeur vers une classe sans new ?
Pour ceux qui ont suivi la discussion precedente, vous devez vous dire que je dois etre allergique au new. :P
Alors cette fois ma question est:
Si on declare une classe de la facon suivante:
Code:
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;
} |
Si on fait par ailleurs:
Code:
1 2 3 4
|
MyClass* myObject;
int b;
b = myObject->function(10); |
Ca marche !!! Et on a bien b = 10 !
Par contre
Code:
1 2 3 4
|
MyClass* myObject;
int b;
b = myObject->toto; |
La on se prend un memory access violation.
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 ?