Comme nous l'avons vu, il y a dans un objet un masquage d'une partie des informations. Il est donc nécessaire de posséder quelque chose pour les récupérer. C'est le rôle des méthodes. En effet, le masquage de l'information se fait au niveau de la classe, c'est à dire que tout objet ne faisant pas partie de la classe se verra refuser l'accès à la partie privée. Il suffit donc de déclarer une fonction dans la partie publique afin qu'elle puisse être appelée par l'utilisateur et avoir en même temps accès aux données cachées.
Certaines méthodes dont obligatoires ou en tout cas fortement conseillées !. Il s'agit des constructeurs, qui portent le même nom que la classe et des destructeurs qui portent le même nom que celui de la classe précédé d'un tilde.
L'appel d'une méthode se fait en précisant la méthode appelée et l'objet pour lequel on appelle cette méthode ( objet.méthode(...) ).
Les méthodes dont des fonctions normales dont un paramètre est donné par défaut: il s'agit de l'objet appelant la méthode. Les membres, données ou méthodes, de cet objet sont directement accessibles par leur nom ou par this->données car this est un pointeur sur l'objet appelant. L'accès aux membres des autres objets se fait par objet.membre().
L'implémentation réelle des méthodes est souvent séparée de leur déclaration. Il faut alors utiliser un opérateur de résolution de portée noté :: pour indiquer à quelle classe se rapporte la méthode définie.
Si l'implémentation de la méthode est faite dans la définition même de la classe, la méthode sera considérée inline, c'est à dire que le compilateur tentera de l'inclure directement dans les programmes au lieu de faire un appel de fonction normal.
La fonction new est une fonction C++ d'allocation dynamique de mémoire. Son utilisation est la suivante : pointeur_nouvel_objet = new type_objet. Son action est équivalente à celle de malloc avec en plus un appel au constructeur de l'objet créé. Il est donc possible de donner des arguments en écrivant : pointeur_nouvel_objet = new type_objet[nombre_objets].
La fonction delete permet de libérer la place mémoire allouée par new (équivalent au free pour malloc). Son utilisation est la suivante: