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:

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;
}
Si on fait par ailleurs:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
MyClass* myObject;
int b;
b = myObject->function(10);
Ca marche !!! Et on a bien b = 10 !

Par contre


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?