comp.lang.ada
 help / color / mirror / Atom feed
From: "G.B." <bauhaus@futureapps.invalid>
Subject: Re: Quick question regarding limited type return syntax
Date: Mon, 04 Aug 2014 12:42:42 +0200
Date: 2014-08-04T12:42:42+02:00	[thread overview]
Message-ID: <lrno32$9bl$1@dont-email.me> (raw)
In-Reply-To: <c491psFkt2bU1@mid.individual.net>

On 04.08.14 11:24, Niklas Holsti wrote:
> As I understand it, even in the languages which do
> have specific constructor/destructor facilities, there is no requirement
> or check that a constructor must initialize all the components of the
> object (but I'm not sure how Java works in this case).


Java lets you write Ada:

class T
{
     public T() {
         this.foo();
     }
     protected void foo() {}
}

class S extends T
{
     public Integer I;
     public S() {
         // calls super
         // I not initialized (and not allocated)
         this.I = 1;
     }

     @Override
     protected void foo() {
         this.I += 1;
     }
}

class Dispatching
{
     public static void main(String[] args) {
         S Y = new S();
     }
}

This program will stop after throwing a NullPointerException.
If S.I is made an int, the default value is 0, and the above
program is considered bad style(*).
   C++, I think, lets "this" stand for the type at the current "level"
during construction, so there is no dispatching to lower levels IIUC;
however, Stroustrup mentions some pointer tricks that let the
programmer circumvent the restriction.


(*) http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html


  reply	other threads:[~2014-08-04 10:42 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-30 23:51 Quick question regarding limited type return syntax NiGHTS
2014-07-31  0:02 ` Adam Beneschan
2014-07-31  0:56   ` NiGHTS
2014-07-31  0:48 ` Shark8
2014-07-31  1:00   ` NiGHTS
2014-07-31  1:29     ` Adam Beneschan
2014-07-31  1:38       ` NiGHTS
2014-07-31  4:01         ` Shark8
2014-08-01  2:12       ` Randy Brukardt
2014-08-01  3:40         ` Shark8
2014-08-01  7:57         ` J-P. Rosen
2014-08-01 19:23           ` Randy Brukardt
2014-08-01 19:37             ` J-P. Rosen
2014-08-01 20:53             ` Shark8
2014-08-02  7:11               ` Niklas Holsti
2014-08-02  7:34                 ` Dmitry A. Kazakov
2014-08-02 13:20                   ` Robert A Duff
2014-08-02 13:44                     ` Dmitry A. Kazakov
2014-08-02 14:34                       ` Robert A Duff
2014-08-02 16:56                         ` Dmitry A. Kazakov
2014-08-02 20:35                           ` Niklas Holsti
2014-08-03  7:30                             ` Dmitry A. Kazakov
2014-08-04  9:24                               ` Niklas Holsti
2014-08-04 10:42                                 ` G.B. [this message]
2014-08-04 11:39                                   ` Peter Chapin
2014-08-04 17:49                                     ` Niklas Holsti
2014-08-04 11:36                                 ` Peter Chapin
2014-08-04 12:43                                 ` Dmitry A. Kazakov
2014-08-04 16:19                                   ` G.B.
2014-08-04 16:38                                     ` Dmitry A. Kazakov
2014-08-04 16:51                                       ` G.B.
2014-08-04 17:23                                         ` Dmitry A. Kazakov
2014-08-04 19:37                                   ` Niklas Holsti
2014-08-05  8:30                                     ` Dmitry A. Kazakov
2014-08-05 19:24                                       ` Randy Brukardt
2014-08-03 16:35                           ` Robert A Duff
2014-08-02  8:02               ` Jacob Sparre Andersen
2014-08-02 19:20                 ` Shark8
2014-08-03 16:07                   ` Default values (Was: Quick question regarding limited type return syntax) Jacob Sparre Andersen
2014-08-04 21:29                     ` Randy Brukardt
replies disabled

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