Le constructeur est une méthode non typée destinée à être exécutée lors de l'instanciation de la classe.
#include <string>
class tache
{
public:
int no;
double duree;
string nom;
tache(int n,double d, string nm)
{
no=n;
duree=d;
nom=nm;
};
void affiche(){...};
};
void main(void)
{
tache uneTache= tache(1,2,"test") ;
uneTache.affiche();
}
Le constructeur participe à l'encapsulation.
Bien souvent, on utilise des pointeurs sur instance. Exemple:
tache * ptrUneTache=new tache;
L'instruction "new" va réserver un emplacement dans la mémoire vive pour y stocker la nouvelle instance. "PtrUneTache" contiendra alors l'adresse de cet emplacement mémoire.
Si "ptrUneTache" est un pointeur sur "tache" alors "*ptrUneTache" représente la tâche en elle-même.
On peut donc grâce à l'instruction suivante :
* ptrUneTache.no=6;
Mettre 6 dans la propriété "no" de la tâche qui est en mémoire vive à l'adresse contenue dans "ptrUneTache".
Cette notation étant un peu lourde, on a décidé d'utiliser un autre formalisme :
Si "ptrUneTache" est un pointeur sur "tache" alors l'instruction suivante :
ptrUneTache->no=6;
mettra 6 dans la propriété no de la tâche qui est en mémoire vive à l'adresse contenue dans ptrUneTache.
Autrement dit :
ptrUneTache->no
est équivalent à
*ptrUneTache.no