Почему здесь не происходит переопределение членов класса?

#include <iostream>

class Captcha {
private:
    uint16_t m_length = 1;
    uint16_t m_length_max = 1;
    uint16_t m_length_min = 1;
public:
    Captcha()
        : m_length{ 0 }, m_length_max{ 0 }, m_length_min{ 0 }
    {}

    Captcha(int a)
    {
        Captcha();
    }

};


int main()
{
    Captcha cap(1);
}

Почему здесь не происходит переопределение? В этом случае выполняется конструктор с параметрами int, сначала он инициализирует переменные члены класса единицами, потом выполняется тело конструктора и вызывается конструктор выше, он в свою очередь инициализирует с помощью списка инициализации (не присваивает).


Ответы (0 шт):