I think by definition a default constructor has NO parameters, so it will always look like this:

Code:

ClassName()
{
//do something
}

The only question is whether you have to define one or the compiler is going to supply one automatically. If you define ANY constructor, then the compiler won't supply a default constructor, and you need a default constructor to do this:

1. you need to specify the type of the paramter - more than likely, in this case, it should eb float
2. I assume Raidus is meant to be radius. you can't use the same name for parameter variables. you would need Circle::Circle(float r){ radius = r; }
3. You need to define AND protoype default constructors which take no parameters.
Circle(void) != Circle(float = 0); These are not the same functions.

First of all, you have to use some imagination and not name every variable in your program Radius. The code fragment:

size.Radius

indicates that Radius is a member of the Circle class. But, then you also have a variable in main declared here:

float Radius;

So, my first piece of advice is: do NOT EVER name variables with identical names. Because of those identical variable names, it is not clear what you think you are doing with this statement:

size.Radius(Radius);

However, I'll assume you think you are trying to assign the value of a variable you called Radius to the Radius member of the size Circle. Another tip: capitalize your object names. However, there are a couple of things wrong with that statement:

1) Radius is a private member, so you cannot access it. Private members of a class can only be accessed by member functions of the class.

2)If the Radius were public, you still couldn't assign it a value doing this:

size.Radius(Radius)

The way you would assign the value is like this:

size.Radius = Radius;

You can do this:

Code:

float num(3.0);
cout<<num<<endl; //3

That's called "functional notation" for declaring initial values--but you must initialize the variable when it is declared. You cannot do this:

Code:

float num;
num(3.0);

The variable num has already been declared, and to the compiler, that looks like you are trying to call a function named num() and sending the argument 3.0 to the function. I suggest you don't use functional notation to initialize variables of simple types--I hardly ever see that done, and you will avoid these exact types of problems by not using it.