Почему здесь не происходит переопределение членов класса?
#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, сначала он инициализирует переменные члены класса единицами, потом выполняется тело конструктора и вызывается конструктор выше, он в свою очередь инициализирует с помощью списка инициализации (не присваивает).