views:

80

answers:

1

Hi, I've problems to figure it out what's happening in the following exercise, I'm learning Smalltalk, so I'm newbie.

Class A>>new ^super new initialize.

A>>initialize a:=0.

Class B>>new: aParameter |instance| instance := super new. instance b: instance a + aParameter. ^instance

B>>initialize b:=0.

The problem says what happen when the following code is executed:

B new:10.

But I can't not figure it out why instance variable does not belong to A class.

Thanks

+3  A: 

I discovered the issue, the missing of super initialize, when the code was executed the initializer of "instance := super new." was the initializer of class B, that's why the A instance var was not initialized, the following code fix the issue:

B>>initialize

super initialize.

b:=0.

Gonzalo
I'd noticed that, but sometimes that's exactly what you want. Glad to hear you sorted out your problem!
Frank Shearar