From: Ken Garlington <GarlingtonKE@lmtas.lmco.com>
Subject: Converting C++ class to Ada
Date: 1996/12/10
Date: 1996-12-10T00:00:00+00:00 [thread overview]
Message-ID: <32ADF183.7195@lmtas.lmco.com> (raw)
In an attempt to better understand both C++ and Ada, I've been
converting some C++ code into Ada. I'm struggling with this particular
class:
class CTableXY
{
public:
CMotor& XMotor;
CMotor& YMotor;
CSwitch& XLimit;
CSwitch& YLimit;
CTableXY( CMotor& xmotor, CMotor& ymotor,
CSwitch& xlim, CSwitch& ylim ) :
XMotor(xmotor), YMotor(ymotor),
XLimit(xlim), YLimit(ylim) {}
void SetVelocityX( float vel )
{ XMotor.SetSpeed( vel ); }
void SetVelocityY( float vel )
{ YMotor.SetSpeed( vel ); }
int GetSwitchX( void ) { return
XLimit.isOpen(); }
int GetSwitchY( void ) { return
YLimit.isOpen(); }
};
It seems to me that the straightforward Ada translation is something
like:
with Motor, Switch;
package Table_XY is
type Motor_Access_Type is access all Motor.Object_Type'Class;
type Switch_Access_Type is access all Switch.Object_Type'Class;
type Object_Type is record
X_Motor : Motor_Access_Type;
Y_Motor : Motor_Access_Type;
X_Limit : Switch_Access_Type;
Y_Limit : Switch_Access_Type;
end record;
procedure Set_Velocity_X ( Object : in out Object_Type;
Velocity : in Motor.Velocity_Type );
-- and so forth
end Table_XY;
My main issues:
(1) What do I do about the constructor? As I understand C++,
I need to force the user to supply values for the components of
Object_Type when something of that type is declared. How do I do
this?
(2) If I'm reading it correctly, the C++ interface exposes the details
of
the table, although it provides procedures to manipulate it.
However,
I'm thinking of making Object_Type limited private anyway, since
otherwise it seems silly to have the procedures/functions that are
declared here. (More of a style issue than anything...)
Any comments?
--
LMTAS - The Fighter Enterprise - "Our Brand Means Quality"
For job listings, other info: http://www.lmtas.com or
http://www.lmco.com
next reply other threads:[~1996-12-10 0:00 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
1996-12-10 0:00 Ken Garlington [this message]
1996-12-11 0:00 ` Converting C++ class to Ada Norman H. Cohen
1996-12-12 0:00 ` Jon S Anthony
1996-12-11 0:00 ` Jon S Anthony
1996-12-12 0:00 ` Ken Garlington
1996-12-18 0:00 ` Jon S Anthony
1996-12-18 0:00 ` Matthew Heaney
1996-12-19 0:00 ` Robert A Duff
1996-12-20 0:00 ` Stephen Leake
1996-12-20 0:00 ` Robert A Duff
1996-12-20 0:00 ` Norman H. Cohen
1996-12-20 0:00 ` Jon S Anthony
1996-12-20 0:00 ` Mitch Gart
1996-12-21 0:00 ` Jon S Anthony
1996-12-11 0:00 ` Larry Kilgallen
1996-12-11 0:00 ` Stephen Leake
1996-12-13 0:00 ` Stephen Leake
1996-12-12 0:00 ` Dale Stanbrough
1996-12-12 0:00 ` Constructors for Ada (was: Converting C++ class to Ada) Matthew Heaney
1996-12-13 0:00 ` Norman H. Cohen
1996-12-13 0:00 ` Matthew Heaney
1996-12-17 0:00 ` Robert I. Eachus
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox