According to http://en.cppreference.com/w/cpp/language/access,
protected members are accessible within the class and its methods and in its descendants
Do they mean direct descendants only, and not descendants of descendants, or do they mean all descendants?
e.g. If class C is a subclass of B, and B is a subclass of A which has a protected member, then B can obviously access it, but what about C?
Protected members are available to all descendants until/unless you reach a point that private inheritance was used. So, as long as your A, B, and C all use public inheritance (or protected inheritance, though that’s rare enough to almost ignore), then yes, the most-derived can still used protected members from the most-base class (and if there were D, E, and F, the same would remain true).