|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2006
Città: alessandria
Messaggi: 1693
|
[Ruby] Ereditarietà
ciao a tutti, penso che per risolvere questa cosa sia necessario qualcuno che conosca ruby in particolare, non me ne vogliano i puristi di java o c++, il problema non è di "concetto" quanto piuttosto "tecnico": spiego subito:
ho una classe Persona cosi fatta: Codice:
class Persona
attr_accessor :nome, :cognome
def initialize(n,c)
@nome = n
@cognome = c
end
def to_s
"#@nome #@cognome"
end
end
Codice:
class Programmatore < Persona
attr_accessor :salario, :ling_con
def initialize(n,c,sal,lcon)
super(n,c)
@salario = sal
@ling_con = lcon
end
end
Codice:
class Datore_lavoro < Persona
attr_accessor :disp, :ling_ric, :impiegati
def initialize(n,c,d,lric)
super(n,c)
@disp = d
@ling_ric = lric
@impiegati = []
end
end
Codice:
def assumi(p)
if p.salario <= @disp
@disp -= p.salario
for linguaggio in p.ling_con
@ling_ric.delete(linguaggio)
end
@impiegati << p
end
end
undefined method `salario' for nil:NilClass (NoMethodError) e ha ragione, visto che salario è una variabile di istanza di programmatore. . .la mia domanda quindi è: come faccio ad accedere alle variabili di istanza definite in un altra classe, probabilmente devo creare un programmatore, ma in questo caso che parametri vi passo? ps: le classi sono contenute in file separati nominati con il nome della classe contenuti nella stessa cartella di progetto di netbeans.
__________________
Ho concluso affari positivamente con: Kawa, maxb81, pinok, DeicidE, borty, sprec13, Shandar, vtecb4st4rd, WhiteWolf42, feba, Bobosassa, devon_rex, cristianobon70, pingu79, Rospaccio, ces53, messmaker, iridio80, ilayu81, marcasso, imu, gianni165, Nike86, mojito |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jan 2007
Messaggi: 189
|
l'attributo salario di Programmatore è pubblico quindi è accessibile a tutti, il problema secondo me è un'altro
undefined method `salario' for nil:NilClass (NoMethodError) questo errore indica che tu stai chiamando il metodo salario su un oggetto nil quindi non inizializzato. Controlla quando richiami il metodo assumi che il parametro che gli passi non sia nil. Ciao |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: May 2006
Città: alessandria
Messaggi: 1693
|
Quote:
__________________
Ho concluso affari positivamente con: Kawa, maxb81, pinok, DeicidE, borty, sprec13, Shandar, vtecb4st4rd, WhiteWolf42, feba, Bobosassa, devon_rex, cristianobon70, pingu79, Rospaccio, ces53, messmaker, iridio80, ilayu81, marcasso, imu, gianni165, Nike86, mojito |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:43.




















