Time: 0:00
Test a custom input to verify an edge case (e.g. empty lists, negative numbers, duplicates).
This bug belongs to the logic errors pattern
The wrong operator, an inverted condition, a formula the right way round but backwards.
What went wrong: In C++, class members are initialized strictly in the order they are declared in the class definition, regardless of the order in the constructor initializer list. factor was declared before base, so factor(base * 2) evaluated while base was still uninitialized garbage.
The fix: Reorder the member declarations so base is declared before factor.
Remember: Members are always initialized in declaration order. Always list constructor initializers in the same order as class member declarations.
The pattern behind it: logic errors.
Paste this into any web page or blog post. Visitors fix the bug right there, in their browser.
<iframe src="https://trybughunt.com/embed/278e09e3-ab7e-4a90-857b-f06d2c79ea3b" title="Debugging challenge: Member initialization order mismatch with declaration" width="100%" height="580" loading="lazy" style="border:1px solid #d4d4d8;border-radius:12px;max-width:760px"></iframe>
<p style="font-size:14px">Debugging challenge from <a href="https://trybughunt.com/challenges/278e09e3-ab7e-4a90-857b-f06d2c79ea3b">TryBugHunt</a></p>