Unless MS has a custom C++ runtime that I'm not aware of, I wouldn't consider C++ a high level language like obj-c is, for better or worse. The benefits and drawbacks of runtime dispatch are highly debatable, but the amount of runtime metaprogramming you can do in ObjC is comparable to what you can do in a language like Ruby:
* Call any method (send message in objc parlance) based on the string name of the method
* Add methods to existing classes you don't own
* Swap existing method implementations of a class you do not own at runtime (method swizzling)
* Get and set variables by their string name for subclasses of NSObject
* Check if an object has a method with a given name (great for invoking methods conditionally)