In Objective-C, what is the actual difference between putting an instance variable in .h files vs. putting it in .m files? Is the end-result any different? What particular mechanism allows for this? How come this is possible in Objective-C and not in, say, C++?
If I adopt the style of putting instance variables in .m files, this is only suitable for private instance variables, right? I should always put my protected instance variables in .h files so they can be properly inherited by subclasses, right? Or is there a way to let protected ivars in .m files be inherited somehow?