[ruby-it] Accedere alle variabili di classe base

Paolo Montrasio paolo a paolomontrasio.com
Gio 26 Mar 2009 10:13:37 CET


Alessandro Mazzone wrote:
> Salve,
> se ho una classe B che è ereditata da una classe E,supponiamo che @v è
> una variabile di classe della classe B,se voglio accedere ad essa dalla
> classe E come devo fare?devo usare self.v?
> 
> Grazie

A dire il vero non lo so, ma provare non è difficile:

$ vi x

class B
  attr_accessor :v
  def initialize
    @v = 0
  end
end

class E < B
  def v
    self.v
  end
end

e = E.new
puts e.v

$ ruby x
x:7:in `v': stack level too deep (SystemStackError)
  from x:7:in `v'
  from x:12

Quindi la risposta è no. self.v richiama ricorsivamente sè stesso.

Però cercando "ruby call base class" su Google il primo link ritornato 
dà la soluzione, che è:

class E < B
  def v
    super
  end
end


Paolo
-- 
Posted via http://www.ruby-forum.com/.


More information about the Ml mailing list