"Jean-Pierre Rosen" wrote in message news:6u27jb.6e.ln@skymaster... > > "Randy Brukardt" a �crit dans le message de news:vld62odqnfei2d@corp.supernews.com... > > > Matthew Heaney writes: > > > > > > > Null_Object : T := null; > > > > > > > I find the latter convention confusing, because it suggests that if > > > > the initialization part were omitted, then the object wouldn't be > > > > initialized. But that would be incorrect. > > > > *I* find > > Null_Object : T; > > confusing. A maintenance programmer probably doesn't know the class of > > object that T represents, > > I understand that concern, but it vanishes with reasonable identifiers: > > Null_Object : String_Pointer; > > OK for you? Not really, unless your organization has very strong naming conventions. (We don't; I tried to enforce some naming conventions with Claw, but that was only partially successful.) Certainly, I have some "virtual pointer" types that are really integers or private types, and these need to be initialized. (Even if a private type is implemented as an access type, you still ought to explicitly initialize it, because otherwise you're depending on the private definition, which may change.) If Ada had a way to specify a default value for a (sub)type, I would be happy to omit the initializer. (Or if flow shows that it is certain to be initialized.) But, given the current language, that is often not a good idea. Randy.