Let's consider a simple class declared within a script:
class foo{
foo(){
//...
}
}
I can create its instances in both of these two ways:
foo foo1();
foo foo2;
Now let's consider a similar class, but give its constructor a parameter that can have a default value:
class foo{
foo(int bar=0){
//...
}
}
This will still be valid:
foo foo1();
But the other line will return an error:
ERR : No default constructor for object of type 'foo'.
This error will also appear in various other cases such as trying to create a temporary copy of an object. I think that constructors which can be called with no parameters should be treated as default constructors.