Class inheritance with CREATE_STRUCT? [message #94557] |
Wed, 05 July 2017 16:15  |
andre.waehlisch
Messages: 3 Registered: July 2017
|
Junior Member |
|
|
Hello,
I am trying to create a new object class structure which inherits from IDL_Object. I want to use CREATE_STRUCT for this, but it seems like that is not possible. Am I stuck with the curly bracket struct creation?
My minimal example (this fails with syntax error):
pro teststruct__define
;void={teststruct, a:0, inherits IDL_Object} ; this works
void = CREATE_STRUCT(NAME='teststruct', 'a', 0, inherits IDL_Object) ; syntax error
end
|
|
|
Re: Class inheritance with CREATE_STRUCT? [message #94558 is a reply to message #94557] |
Thu, 06 July 2017 00:16   |
Helder Marchetto
Messages: 520 Registered: November 2011
|
Senior Member |
|
|
I would say that you're stuck with the curly bracket notation. Create_struct() is meant for run-time definition of a structures and objects are typically static. Is this just an aesthetic problem or do you plan to dynamically create the structure of the object?
However, if a dynamic object is what you really want, then you could use hashes and dictionaries in the structure definition (with curly brackets).
Here are some useful object related links, in case you didn't come across these things:
http://www.idlcoyote.com/tips/getproperty.html
http://www.idlcoyote.com/code_tips/allprops.html
I hope it helps,
Helder
On Thursday, July 6, 2017 at 1:15:11 AM UTC+2, andre.w...@web.de wrote:
> Hello,
>
> I am trying to create a new object class structure which inherits from IDL_Object. I want to use CREATE_STRUCT for this, but it seems like that is not possible. Am I stuck with the curly bracket struct creation?
>
> My minimal example (this fails with syntax error):
>
> pro teststruct__define
> ;void={teststruct, a:0, inherits IDL_Object} ; this works
> void = CREATE_STRUCT(NAME='teststruct', 'a', 0, inherits IDL_Object) ; syntax error
> end
|
|
|
Re: Class inheritance with CREATE_STRUCT? [message #94559 is a reply to message #94557] |
Thu, 06 July 2017 02:07   |
Lajos Foldy
Messages: 176 Registered: December 2011
|
Senior Member |
|
|
On Thursday, July 6, 2017 at 1:15:11 AM UTC+2, andre.w...@web.de wrote:
> Hello,
>
Use curly braces in create_struct :
void = CREATE_STRUCT(NAME='teststruct', 'a', 0, {IDL_Object})
regards,
Lajos
> I am trying to create a new object class structure which inherits from IDL_Object. I want to use CREATE_STRUCT for this, but it seems like that is not possible. Am I stuck with the curly bracket struct creation?
>
> My minimal example (this fails with syntax error):
>
> pro teststruct__define
> ;void={teststruct, a:0, inherits IDL_Object} ; this works
> void = CREATE_STRUCT(NAME='teststruct', 'a', 0, inherits IDL_Object) ; syntax error
> end
|
|
|
Re: Class inheritance with CREATE_STRUCT? [message #94561 is a reply to message #94559] |
Thu, 06 July 2017 10:17  |
Lajos Foldy
Messages: 176 Registered: December 2011
|
Senior Member |
|
|
On Thursday, July 6, 2017 at 11:07:06 AM UTC+2, fawltyl...@gmail.com wrote:
> Use curly braces in create_struct :
>
> void = CREATE_STRUCT(NAME='teststruct', 'a', 0, {IDL_Object})
I had more time to test this, and it does not work. The structure members are copied as expected, but the inheritance info is lost.
regards,
Lajos
|
|
|