Un constructeur est, en programmation orientée objet, une fonction particulière appelée lors de l'instanciation. Elle permet d'allouer la mémoire nécessaire à l'objet et d'initialiser ses attributs.
Si le langage l'autorise, la surcharge est possible et les constructeurs se différencient par le nombre et le type des paramètres passés et renvoyés mais aussi par le formalisme employé. Dans de nombreux langages, on distingue certains constructeurs en particulier :
Ces deux constructeurs ont souvent une définition attribuée par défaut par le compilateur. Le constructeur par défaut n'a alors aucun effet ; le constructeur de recopie par contre recopiera les valeurs de tous les membres de l'objet donné vers l'objet courant. Ceci peut s'avérer particulièrement dangereux, spécialement dans le cas où des pointeurs sont alloués par le constructeur et libérés par le destructeur.