comp.lang.ada
 help / color / mirror / Atom feed
From: "Frank J. Lhota" <NOSPAM.lhota.adarose@verizon.net>
Subject: Re: memory management and productivity
Date: Mon, 21 Jun 2004 16:31:39 GMT
Date: 2004-06-21T16:31:39+00:00	[thread overview]
Message-ID: <L3EBc.15198$z24.12408@nwrdny01.gnilink.net> (raw)
In-Reply-To: wvbrsmcp2uqd.fsf@europa1.Norway.Sun.COM

"Ole-Hjalmar Kristensen"
<ole-hjalmar.kristensen@substitute_employer_here.com> wrote in message
news:wvbrsmcp2uqd.fsf@europa1.Norway.Sun.COM...
> > Russ wrote:
> Yes, *IF* it has been allocated with new.

In C++, all memory allocation / deallocation should be done using the new /
delete operators. This is true even for pointers to classes that do not have
constructors or destructors. This is because classes often have default
constructor / destructor actions that need to be performed for the object to
be usable. For example, if the class has any virtual methods, then "jump
table" must be set up. Also, if any field / sub-field / sub-sub-field has a
constructor / destructor, then this constructor / destructor cannot be
ignored.

The safe way to change the memory management algorithms for a given C++
class is to define new / delete operators for that class. This will permit
the user-defined algorithms for allocation / deallocation to be used for the
class without interfering with constructor / destructor actions. This is the
C++ equivalent of the Ada "for Name'Storage_Pool use ...;" clause.

> This is exactly the same as C++.  I would say that Ada and C++ are
> more or less on equal footing when it comes to garbage collection in
> practice.

I agree. It would be more accurate to say that in both Ada and C++, the
tools are there to implement your types with GC.





  parent reply	other threads:[~2004-06-21 16:31 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-17  4:56 memory management and productivity Russ
2004-06-17  5:15 ` tmoran
2004-06-17  8:07 ` Martin Dowie
2004-06-18 23:10   ` Russ
2004-06-19  9:04     ` Martin Dowie
2004-06-21  4:16       ` Russ
2004-06-21  7:29         ` Jano
2004-06-21  8:02           ` Martin Dowie
2004-06-21  8:22             ` Jano
2004-06-21  9:07               ` Martin Dowie
2004-06-21 22:36             ` Brian May
2004-06-22  7:47               ` Martin Dowie
2004-06-21  8:14           ` Ole-Hjalmar Kristensen
2004-06-21  8:27             ` Jano
2004-06-21  8:29             ` Martin Dowie
2004-06-22  7:53               ` Ole-Hjalmar Kristensen
2004-06-26 15:44                 ` Robert I. Eachus
2004-06-21 16:31             ` Frank J. Lhota [this message]
2004-06-22  7:58               ` Ole-Hjalmar Kristensen
2004-06-21  8:14           ` Martin Krischik
2004-06-21 15:22             ` Hyman Rosen
2004-06-21 16:47               ` Martin Krischik
2004-06-21 17:51           ` Hyman Rosen
2004-06-22 17:02             ` Pascal Obry
2004-06-26 15:54             ` Robert I. Eachus
2004-06-21  7:46         ` Martin Dowie
2004-06-21 19:03           ` Russ
2004-06-22  2:39             ` David Starner
2004-06-22  8:03               ` Ole-Hjalmar Kristensen
2004-06-23  4:41                 ` Russ
2004-06-23  7:41                   ` Martin Dowie
2004-06-23 17:36                     ` Björn Persson
2004-06-23 22:06                       ` David Starner
2004-06-24  0:34                         ` Björn Persson
2004-06-24  6:45                           ` Martin Krischik
2004-06-24 10:27                             ` Wes Groleau
2004-06-23 23:02                       ` Russ
2004-06-26 16:16                         ` Robert I. Eachus
2004-06-23 13:11                   ` Larry Kilgallen
2004-06-23 17:21                     ` Björn Persson
2004-06-24  7:35                       ` Ole-Hjalmar Kristensen
2004-06-26 17:10                         ` Simon Wright
2004-06-23 18:18                     ` Russ
2004-06-23 23:18                       ` David Starner
2004-06-23 22:15                     ` Larry Kilgallen
     [not found]                     ` <bebbba07.0406231018.21Organization: LJK Software <IKJODEu6UfVI@eisner.encompasserve.org>
2004-06-24  6:40                       ` Russ
2004-06-26 16:33                         ` Robert I. Eachus
2004-06-29  0:33                           ` Randy Brukardt
2004-06-24 13:29                     ` Stephen Leake
2004-06-24 14:09                       ` Hyman Rosen
2004-06-24 19:58                         ` Frank J. Lhota
2004-06-25  1:30                         ` Stephen Leake
2004-06-25  2:15                         ` Russ
2004-06-24 19:26                       ` Russ
2004-06-25  1:37                         ` Stephen Leake
2004-06-25 10:13                           ` Ole-Hjalmar Kristensen
2004-06-26  0:20                             ` David Starner
2004-06-25 23:35                           ` Russ
2004-06-26 11:27                             ` Martin Dowie
2004-06-26 13:45                             ` Ed Falis
2004-06-26 20:38                               ` Russ
2004-06-26 21:36                                 ` Ludovic Brenta
2004-06-27  7:54                                   ` Dmitry A. Kazakov
2004-06-26 17:20                             ` Robert I. Eachus
2004-06-25  8:52                         ` David Starner
2004-06-24 20:51                     ` Larry Kilgallen
2004-06-22  6:09             ` Martin Krischik
2004-06-22 10:20             ` Georg Bauhaus
2004-06-26 16:00             ` Robert I. Eachus
2004-06-21  8:23         ` Dmitry A. Kazakov
  -- strict thread matches above, loose matches on Subject: below --
2004-06-21 10:33 Christoph Karl Walter Grein
2004-06-21 10:38 ` Jano
replies disabled

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