hola a toda la comunidad. me encuentro repasando un poco c++ y encontre un codigo que no entiendo muy bien
  
Código:
 #include <iostream>
using namespace std;
class circle
{
public:
    circle(int size) : size(size){}
    void print() const
    {
        cout << size << endl;
    }
private:
    int size;
};
int main()
{
    circle circ = 42;
    circ.print();
    return 0;
}
  específicamente 
 porque automáticamente asigna 42 a size ? no comprendo muy bien como interpreta eso el compilador. como se llama el tema para buscar mas en Internet ? 
muchas gracias