If the ivars are declared in the @interface, then they are visible to all subclasses and you will get an error if the names match ones declared in subclasses. If the ivars are declared in the @implementation context, then you will get no error and each class will refer to its own private version. This gets a bit complicated when you refer to the ivars by name in introspection (you’ll likely see confusing things if you tell KVC to directly access ivars, for example).
David > On 11 Jan 2016, at 15:16, Riccardo Mottola <riccardo.mott...@libero.it> wrote: > > Hi, > > I have a simple question and I am unsure about the answer. > > Suppose we have class A with an ivar _var. > > Now, I subclass A with B. Since I don't know the declaration of A, I also > need an ivar and call it _var and they probably have the same type. > > What happens? Do I get a compiler error? Does the compiler smartly renames > the two variables like _var_A and _var_B? Does the second declaration get > ignored and the code refers to the same variable? I would expect the > renaming behaviour, but the latter also makes > > I wonder if there is risk calling vars like "_size" or "width" "height" which > have common names enough to be declared up in the hierarchy. > I am debugging code that works on Mac and not on GS, so I got the doubt. > > Riccardo > > _______________________________________________ > Gnustep-dev mailing list > Gnustep-dev@gnu.org > https://lists.gnu.org/mailman/listinfo/gnustep-dev -- This email complies with ISO 3103 _______________________________________________ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev