in reply to Re: Re: OO - problem with inheritance
in thread OO - problem with inheritance
I'm a little confused about what you're doing. You want each change submitted to the base_class's %parameter_config for confirmation; after that, the actual values get stored in each subclass's own %parameter_config, right? If so, just change your accessors so that before fiddling with %sub_class::parameter_config it first messes with %base_class::parameter_config, to do whatever checking/storing you want done there, and then store the data in each individual subclass's hash. (Or, if you follow your new approach, replace "fiddling with %base_class::parameter_config" with "call validation methods from ValidateNewParameter". Same principle.)
I need the %parameter_config hash before new() is called, because new() needs this information to figure out, if the parameters given to new() are correct. So I need code I can run when the class is loaded.
OK, so put something like this at the start of each subclass:
And now each subclass has its own copy of %parameter_config. Just make sure that &base_class::parameter_config returns a copy of the hash.use vars qw(%parameter_config); # or 'our' but NOT 'my', not if you # use the approach I gave before %parameter_config = &base_class::parameter_config;
-- Frag.
--
"It's beat time, it's hop time, it's monk time!"
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Re: Re: OO - problem with inheritance
by uwevoelker (Pilgrim) on Jan 14, 2002 at 21:56 UTC | |
by IlyaM (Parson) on Jan 14, 2002 at 22:08 UTC | |
by uwevoelker (Pilgrim) on Jan 14, 2002 at 22:14 UTC | |
by IlyaM (Parson) on Jan 14, 2002 at 22:19 UTC | |
by uwevoelker (Pilgrim) on Jan 14, 2002 at 22:25 UTC |