TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Classic View

Use Monospaced Font
Show Text Part by Default
Condense Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Sender: "Team Ada: Ada Programming Language Advocacy (83 & 95)" <[log in to unmask]>
From: Karl Nyberg <[log in to unmask]>
Date: Wed, 15 Dec 2004 05:27:30 -0500
In-Reply-To: <[log in to unmask]> (message from Chris Sparks on Tue, 14 Dec 2004 20:02:19 -0800)
Parts/Attachments: text/plain (33 lines)
   Date:         Tue, 14 Dec 2004 20:02:19 -0800
   From: Chris Sparks <[log in to unmask]>

   I am currently working on a project that is doing Ada 95 bindings to C++
   and it is a virtual nightmare.  Very high learning curve and I still
   don't think I got it.  Does anyone have a nice "cheat sheet" that
   describes a C++ object oriented ism to an Ada 95 way of doing it.

   For example:
   class A {
     int Func (const A& p1);
   package A is
     type Object is tagged null record;
     function Func (This : in out Object;
                            p1   : in       Object'Class)
                                     return Integer;
   end A;

I have the benefit of going the other way right now (making C++ bindings to
Ada), and I'm using ASIS.  It's an absolute delight.

What I map is:

     private types
     tagged types
     variant records

To C++ classes.  Maybe you could consider one of those other options,
depending on whether the methods are virtual or not.

-- Karl --