hu*******@gmail.com wrote:
Just curious, any one know what the 3 part parameter "class CString
filename" would mean.
The code:
int TestFunc(class CString filename)
{
fopen(filename, "w");
}
It means that "CString" is the name of a class - the class of the
"filename" parameter that is passed by value to the implementation of
the function TestFunc().
Compile using Visaul C++, there is no complain about the defintion. But
the following error:
error C2664: 'fopen' : cannot convert parameter 1 from 'CString' to
'const char *'
Source or target has incomplete type
I know if I remove "class" in parameter list, the function just compile
fine. But what would it mean if I keep "class" there?
Are you sure that removing the keyword "class" fixes the compiler
error? It's not impossible, but it would have to mean that "CString" is
not in fact the name of a class as the parameter declaration claims.
Instead CString would have to be the name of a typedef.
Now the error that the compiler reports is it cannot find the
definition of the class CString. And the compiler must have CString's
class definition because filename, a CString parameter, is being passed
by value to TestFunc.
So the upshot is that either the keyword "class" as it is being used
here is either being completely unnecessary or it is being entirely
unhelpful.
Greg