What does this do: Mouse_::Mouse_(void) : _buttons(0) { ... }

Mouse.cpp

Mouse_::Mouse_(void) : _buttons(0)
{
    static HIDSubDescriptor node(_hidReportDescriptor, sizeof(_hidReportDescriptor));
    HID().AppendDescriptor(&node);
}

At first I thought this would be some sort of inheritance, but I couldn't find a class called _buttons. Instead, _buttons seems to be a property of Mouse, but I don't understand its usage in the constructor.

Could someone explain it to me?

This is a C++ way of initializing member variables.

Thanks @Delta_G and @arduino_new. Very unfortunate syntax for something like that imo.

felic:
Thanks @Delta_G and @arduino_new. Very unfortunate syntax for something like that imo.

Yes, but this is all in the name of efficiency.