Le code n'est pas dans les objets de classe, mais il est accessible via la classe.
Les fonctions dans une classe/structure, c'est juste un moyen d'organisation pour le programmeur.
Les membres de données consituent le contenu effectif de chaque instance (oui, c'est comme ça qu'on dit) de cette classe.
Les fonctions sont toujours globales (même s'il y a des restrictions d'accès), C++ ne gère pas le code dynamique, seulement les appels dynamiques.
Les méthodes ont ceci de spécial qu'elles ont un premier argument implicite pointeur sur l'objet les appelant.
Inline est un concept différent, qui vient en plus.
Bref:
Code :
- struct MYSTRUCT{
- int var;
- void MyFunc1(int i); //simple déclaration
- void MyFunc2(int i) {var = i;} //définition inline
- };
- void MYSTRUCT::MyFunc1(int i){ //implicitement void MyFunc1(MYSTRUCT* this, int i)
- var = i; //implicitement this->var = i
- }
- MYSTRUCT ms;
- ms.MyFunc1(1); ////implicitement MyFunc1(&ms, 1)
|
On peut obtenir un appel dynamique avec les méthodes virtuelles, les pointeurs de fonctions ou les pointeurs de méthodes.
---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone