Jensen Somers wrote:
> Pat wrote:
>> Francis Glassborow wrote:
>>> Pat wrote:
>>>> I'm in the process of teaching myself C++ (with the help of several
>>>> good books) so I can develop some DLL's for another application.
>>>>
>>>> Looking through an example of one of these, there's a line that
>>>> defines a structure as follows:
>>>>
>>>> struct ParameterDefinition primaryParams[]=
>>>> {
>>>> {"x position =", kXpos, 1.0}
>>>> {"y position =", kYpos, 2.0}
>>>> {"z position =", kZpos, 0.0}
>>>> };
>>>>
>>>>
>>>> None of the books I've been reviewing define a structure in this way
>>>> (at least so far). So what is "ParameterDefinition"? A pointer?
>>>> I assume it actually contains the code that defines this structure
>>>> type. Is there a name for this way defining a structure? I'd like
>>>> to read more about that.
>>>
>>> No, you have misunderstood. The above is NOT a definition of a
>>> struct. struct ParameterDefinition is a type written in C form, C++
>>> would just use ParameterDefinition (it does not need the prefix
>>> 'struct' to tell the compiler that the following is the name of a
>>> struct type.
>>>
>>> Now given that 'struct ParameterDefinition' is just a long winded
>>> name for a type we can read the whole declaration/definition as:
>>>
>>> primaryParams is an array (size to be deduced from the provided
>>> initialisers) of type ParameterDefinition which is to be initialised
>>> with three sets of values.
>>>
>>> Compare this with the simpler but similar
>>>
>>> int array[] = {1, 2, 3};
>>
>>
>> Thanks. You're right. I removed the "struct" (so it just reads
>> "ParameterDefinition primaryParams[]=") and it stilled compiled and
>> ran fine. So that now makes sense (except now I'm going have to sort
>> out what's C vs C++ !)
>>
>> The question now though is where is ParameterDefinition actually
>> defined? It's definition is not shown in the source file I'm working
>> with. I guess I need to start checking the files referenced in the
>> headers.
>>
>> But as an academic exercise, I assume ParameterDefinition looks
>> something like this?
>>
>> struct ParameterDefinition
>> {
>> char coordinateName[20];
>> double units;
>> double coordinateValue;
>> };
>>
> Correct
>>
>>
>> (BTW, there should have been commas after each structure element in my
>> original example).
>>
>
> - Jensen
Thanks!


|