comp.lang.ada
 help / color / mirror / Atom feed
From: skj@rb.icl.co.uk (Simon Johnston)
Subject: C++ to Ada95, help please
Date: 8 Mar 1995 07:54:38 -0000
Date: 1995-03-08T07:54:38+00:00	[thread overview]
Message-ID: <3jjnru$e02@jerry.rb.icl.co.uk> (raw)

Hi, I am moving over to Ada95 from C++, I did do some Ada a while ago, and I
am fairly confident, but I need some help to move some C++ knowledge onto
Ada95.

First I would like to declare an Opaque type, or in C++ a 'smiley'.  There
are two uses for such a feature. First, where a class' implementation may
change greatly, and I want to really hide this from clients I would declare
a class for the implementation and hide it. C++ allows this as if you only
use a pointer to the opaque type then the compiler knows the size of it and
does not need to know more. The second is where you have some information 
that the client may request, but the client can only use it by passing it 
back to you. I have used this in a text screen class to save and restore the
screen contents, the client cannot manipulate the screen object as they 
cannot know what it is, and as the screen object is platform dependant I can
use a completely different implementation behind the scenes. I include two 
examples below to illustrate.

// Start ->
class ACollectionClass {
public:
  ...
private:
  class Implementation;
  Implementation* hidden;
};

class Screen {
public:
  ...
  class SavedScreen;
  const SavedScreen* save(void);
  void  restore(SavedScreen* image);
};
// <- end.

Now I know from experience I can do this sort of thing in C++, Modula-2 and
Modula-3 but I cannot see how to do it in Ada, even using private types.


Thanks very much.

MODULE Sig;
FROM ICL IMPORT StdDisclaimer;
FROM Interests IMPORT Modula2, Modula3, Linux, OS2;

BEGIN
(* ------------------------------------------------------------------------.
|Simon K. Johnston - Development Engineer (C/C++)      |ICL Retail Systems |
|------------------------------------------------------|3/4 Willoughby Road|
|Unix Mail : S.K.Johnston@bra0801.wins.icl.co.uk       |Bracknell, Berks   |
|Telephone : +44 (0)344 476320   Fax: +44 (0)344 476302|United Kingdom     |
|Internal  : 7261 6320    OP Mail: S.K.Johnston@BRA0801|RG12 8TJ           |
`------------------------------------------------------------------------ *)
END Sig.




             reply	other threads:[~1995-03-08  7:54 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1995-03-08  7:54 Simon Johnston [this message]
1995-03-08 13:56 ` C++ to Ada95, help please Robert A Duff
1995-03-09 21:23 ` Tucker Taft
  -- strict thread matches above, loose matches on Subject: below --
1995-03-20  8:06 Simon Johnston
1995-03-21 23:27 ` Kevin F. Quinn
1995-03-22  5:07   ` Vladimir Vukicevic
1995-03-22  1:22 ` Tucker Taft
1995-03-22 11:38   ` Robb Nebbe
1995-03-23 12:28   ` Mike Meier
1995-03-23 18:31     ` Tucker Taft
1995-03-24 21:24     ` Robert Dewar
1995-03-27 14:58       ` Norman H. Cohen
1995-03-23 13:30   ` Robert Dewar
1995-03-23 18:01 ` Stephen A. Leake
1995-03-24  9:07   ` Vladimir Vukicevic
1995-03-25 10:02     ` Keith Thompson
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox