En plus d'être un constructeur avec une liste d'initialisation comme d'autres l'ont déjà expliqué, il utilise également le modèle d'implémentation privée.
C++ requiert que la déclaration de classe inclue tous les membres publics et privés de la classe. Cela peut vous obliger à exposer les détails de l'implémentation dont vous ne voulez pas, et à faire de votre implémentation une partie de votre API/ABI. Il peut également augmenter considérablement les temps de compilation en raison de #includes supplémentaires dans les en-têtes publics pour prendre en charge les variables de membre privé.
La création d'une seconde classe avec l'implémentation proprement dite et l'exposition de l'API fonctionnelle rend cette opération beaucoup plus propre, mais au prix d'une couche supplémentaire d'indirection. C généralement gère cela en ayant un pointeur vers un objet opaque que la bibliothèque crée et détruit pour vous.
Les listes d'initialisation de constructeur sont une caractéristique de base du langage C++. C'est quelque chose que vous lisez dans votre livre de base en C++, ne posez pas de questions sur SO. – AnT
désolé, je suis nouveau en C++, je viens du monde C. Je suis familier avec OOP depuis Obj-C et Delphi, mais c'était spécifique à C++. –
Alors faites-vous une faveur et lisez une introduction de base à C++. Comme l'a dit Andrey, ce sont des connaissances de base. Vous ne pouvez pas apprendre efficacement la langue sans avoir une introduction de base. – sbi