The compiler is interpreting the code as:
Code:
Test(bool param1, bool param2)
{
// set and manipulate param1
// call constructor with a single bool input parameter
Test param2;
}
Now, it is clear that you are trying to create an object named param2. However, there is a bool parameter named param2, thus you get a "redefinition of formal parameter 'param2'" error. Furthermore, this Test object is created with the default constructor, but there is no default constructor for Test, thus the "no appropriate default constructor available".
Basically, at least under the current C++ Standard, you cannot chain constructor calls, unlike in say, Java.