From: adam@irvine.com (Adam Beneschan)
Subject: Re: Assignment of limited private types...
Date: Tue, 7 Feb 1995 02:23:52 GMT
Date: 1995-02-07T02:23:52+00:00 [thread overview]
Message-ID: <D3Lyns.5yC@irvine.com> (raw)
In-Reply-To: 3gjce1$1he@theopolis.orl.mmc.com
"Theodore E. Dennison" <dennison@escmail.mmc.orl.com> writes:
>stevem@dcs.gla.ac.uk (Steve McGowan) wrote:
> >
> > I'd like to pass in a 'file_type' identifier into a task, make a local
> > copy of this identifier within the task, and then write text to this
> > file stream inside the task.
> >
> > But I cannot do this since 'file_type' is limited private.
> >
> > Any ideas how I can pass in this identifier, and to write to it
> > locally?
> >
>
> The reason people make types "limited private" is so users CAN'T
> make local copies of the objects. If the designer wanted you to
> be able to make copies of file_type objects, she would have made
> the type "private".
>
> If for some reason you HAVE to make a copy, you could use an
> unchecked_conversion, but DO NOT DO THIS! Odds are very high that
> you will not get the results you desire. Try something else.
I usually solve problems of this type by using pointers. E.g.
type file_type_p is access file_type;
Now, when you want to open and access a file:
my_file := new file_type_p;
text_io.open (my_file.all, ...);
text_io.get_line (my_file.all, ...);
etc.
text_io.close (my_file.all);
and you can assign file_type_p objects and pass them as parameters to
your heart's content.
Hope this helps,
-- Adam
next prev parent reply other threads:[~1995-02-07 2:23 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
1995-01-26 16:37 Assignment of limited private types Steve McGowan
1995-01-30 18:50 ` Theodore E. Dennison
1995-01-31 1:05 ` Henry Baker
1995-02-01 12:29 ` Robert Dewar
1995-02-07 2:23 ` Adam Beneschan [this message]
-- strict thread matches above, loose matches on Subject: below --
1995-01-31 2:35 tmoran
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox