comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: How to do nested objects??
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: How to do nested objects?? [message #35519] Wed, 25 June 2003 05:38 Go to previous message
btt is currently offline  btt
Messages: 345
Registered: December 2000
Senior Member
Mark Hadfield wrote:
> "Jon Robinson" <wonjrobinson@erols.com> wrote in message
> news:bdam9s$ati$1@bob.news.rcn.net...
>
>
>> I have a class that I want to have hold another object. My code
>> compiles without error, however, when I try to run it, I get the
>> error:


<snip>


>
> In the __define routine for the containing object, use obj_new()
> instead of the name of the contained object.
>
> PRO JWR_CalibrationNotes__define
> struct = { JWR_CalibrationNotes, InFileName:'', $
> PathToDataFiles:'', $
> NumberOfNotes:0, $
> NotesArray:OBJARR(80), $
> CalibImageFileNames:obj_new(), ROIFileIDs:LONARR(4) }
> END ; PRO JWR_CalibrationNotes__define
>
> Then in the Init routine for the containing object, you must created
> the contained object and store a reference in the appropriate field of
> your class structure
>
> function JWR_CalibrationNotes::Init
> self.CalibImageFileNames = obj_new('JWR_CAL_Image_File_Names')
> ;; Do other initialisation stuff
> return, 1
> end
>
> You'll almost certainly want to destroy the contained object in the Cleanup
> method also.
>
> The thing to remember is that a __define procedure for a class
> structure (or for a named structure) only *defines* the structure. It
> does this by creating a prototype instance of the structure, then
> discarding it when the procedure terminates. The next time an object
> of the same class (or named structure of the same type) is created, it
> has the same fields and data types as the prototype, but none of the
> actual data.
>

Hi,

Just to add a bit to Mark's nice description. The values in the newly
created and 'unpopulated' prototype are all set to 0 for numeric values,
empty-string for strings, null-pointer for pointers and null-objects for
objects.


Cheers,
Ben
[Message index]
 
Read Message
Read Message
Previous Topic: Re: 3-dimensional integration? [IDL 5.4]
Next Topic: register_cursor error, Win 2000

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 19:01:59 PDT 2025

Total time taken to generate the page: 0.00410 seconds