From: kevin.cline@gmail.com (Kevin Cline)
Subject: Re: Idiom for a class and an object in Ada
Date: 21 Oct 2004 12:31:00 -0700
Date: 2004-10-21T12:31:00-07:00 [thread overview]
Message-ID: <e749549b.0410211131.6505da@posting.google.com> (raw)
In-Reply-To: woEdd.2702$%h1.1164@newsread3.news.pas.earthlink.net
Jeffrey Carter <spam@spam.com> wrote in message news:<woEdd.2702$%h1.1164@newsread3.news.pas.earthlink.net>...
> Matthew Heaney wrote:
>
> > For reasons I can't fathom, many Ada95 developers still have a very
> > Ada83 mindset.
>
> That's because Ada 83 was a very good language, and the idioms that were
> good for it are still good.
>
> > This is the canonical idiom in C++ for controlling instance creation:
> >
> > class C {
> > public:
> >
> > static C* make( /* ... */ );
> > static void free(C*);
> >
> > void f(); //whatever
> >
> > private:
> >
> > C();
> > C(const C&);
> >
> > ~C();
> >
> > C& operator=(const C&);
> > };
> >
> > Here, the ctor (and dtor) is declared as private, so the only way to
> > make a C object is by calling factory function C::make().
> >
> > This has a direct translation into Ada95:
> >
> > package P is
> >
> > type T (<>) is limited private;
> >
> > procedure Op (O : in out T);
> >
> > type T_Access is access all T;
> >
> > function New_T (...) return T_Access;
>
> And this is why C++ is never a good guide to how to do things in Ada.
> The pointer may well be needed in C++;
Not in this case.
class AD_Converter
{
private:
AD_Converter(int line) {}
public:
static AD_Converter Noise;
};
AD_Converter AD_Converter::Noise(17);
next prev parent reply other threads:[~2004-10-21 19:31 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-18 11:47 Idiom for a class and an object in Ada Marin David Condic
2004-10-18 12:14 ` Martin Krischik
2004-10-18 19:40 ` Matthew Heaney
2004-10-19 12:59 ` Marin David Condic
2004-10-19 14:46 ` Martin Dowie
2004-10-19 15:55 ` Matthew Heaney
2004-10-19 18:31 ` Martin Dowie
2004-10-19 15:52 ` Matthew Heaney
2004-10-18 12:26 ` Marius Amado Alves
2004-10-19 2:09 ` Jeffrey Carter
2004-10-19 3:28 ` Matthew Heaney
2004-10-19 12:53 ` Marin David Condic
2004-10-19 14:44 ` Matthew Heaney
2004-10-19 15:01 ` Dmitry A. Kazakov
2004-10-19 15:40 ` Matthew Heaney
2004-10-20 7:58 ` Dmitry A. Kazakov
2004-10-20 12:31 ` Marin David Condic
2004-10-20 13:53 ` Dmitry A. Kazakov
2004-10-20 15:23 ` Matthew Heaney
2004-10-21 12:24 ` Marin David Condic
2004-10-21 17:15 ` Matthew Heaney
2004-10-20 5:39 ` Simon Wright
2004-10-20 7:24 ` Matthew Heaney
2004-10-20 8:39 ` Dmitry A. Kazakov
2004-10-21 1:36 ` Jeffrey Carter
2004-10-21 1:46 ` Matthew Heaney
2004-10-21 7:51 ` Dmitry A. Kazakov
2004-10-21 12:45 ` Matthew Heaney
2004-10-21 14:11 ` Dmitry A. Kazakov
2004-10-22 1:04 ` Jeffrey Carter
2004-10-22 1:36 ` Matthew Heaney
2004-10-21 19:31 ` Kevin Cline [this message]
2004-10-21 22:02 ` Matthew Heaney
2004-10-22 0:10 ` Matthew Heaney
2004-10-21 8:25 ` Martin Dowie
2004-10-20 17:04 ` Matthew Heaney
2004-10-20 19:37 ` Simon Wright
2004-10-20 20:04 ` Matthew Heaney
2004-10-22 5:37 ` Simon Wright
2004-10-20 1:10 ` Jeffrey Carter
2004-10-20 7:04 ` Matthew Heaney
2004-10-20 12:42 ` Marin David Condic
2004-10-20 12:55 ` Matthew Heaney
2004-10-20 15:27 ` Matthew Heaney
2004-10-21 1:36 ` Matthew Heaney
2004-10-19 12:38 ` Marin David Condic
2004-10-18 16:59 ` Matthew Heaney
2004-10-18 18:02 ` Martin Dowie
2004-10-19 13:06 ` Marin David Condic
2004-10-19 14:51 ` Martin Dowie
2004-10-20 16:20 ` Michael Paus
2004-10-20 17:15 ` Matthew Heaney
2004-10-20 17:55 ` Michael Paus
2004-10-21 12:33 ` Marin David Condic
-- strict thread matches above, loose matches on Subject: below --
2004-10-21 13:59 Stephen Leake
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox