A declaration can introduce a type, a function, a variable.
class A; // This declares a type, A
A* aPtr; // This declares a variable, aPtr
// The type of aPtr is A*
A foo(); // This declares a function, foo.
In your case,
List<Observer*> *_Observers; // Declares a variable, _observers.
// The type of _observers is List<Observer*>*.
// For this to be a valid declarion, the types List,
// a class template, and Observer must be known
// (declared or defined) before the
// variable declaration.