Why use TSubClassOf and not just the class itself?

So, is it a stack object or a heap object? Are class pointers and object pointers not the same thing? A pointer is just a address to a point in memory after all.