Here's a "standard format" that I use for an OO Ada type definition, which you can vary to meet your needs (capitalized italics are what you supply):
with PACKAGE_NAME_OF_PARENT;
use PACKAGE_NAME_OF_PARENT;
package PACKAGE_NAME is
type MY_TYPE is tagged private; -- or, new Parent_Type with private
type MY_TYPE_Access is access all MY_TYPE'Access;
-- We'll talk about this in a later lesson; by adding this declaration
-- here you'll make certain operations easier to do later.
-- Dispatching operations go here.
private
-- Define the details of MY_TYPE here.
end PACKAGE_NAME;
For the package name, I generally use the plural of the type name. Here's an example:
with Creatures;
use Creatures;
package Players is
type Player is new Creature with private; -- Player is a type of Creature
type Player_Access is access all Player'Access;
-- Dispatching operations go here.
procedure Look(P : in Player);
private
type Player is new Creature with
record
Logged_In : Boolean;
end record;
end Players;
Ada permits multiple OO types to be defined in a package, but that doesn't mean you must do so. As a general rule, put different type definitions in different packages unless the two types are strongly interrelated.
Given the example above, what is the name of the new tagged type defined above?
|
|
|
|
|---|
David A. Wheeler (dwheeler@ida.org)