Whats the difference between virtual data and dynamic data?
The easiest way to see the distinction is by an analogy with virtual functions: A virtual member function means the declaration (signature) must stay the same in derived classes, but the definition (body) can be overridden. The overriddenness of an inherited member function is a static property of the derived class; it doesn’t change dynamically throughout the life of any particular object, nor is it possible for distinct objects of the derived class to have distinct definitions of the member function. Now go back and re-read the previous paragraph, but make these substitutions: • “member function” → “member object” • “signature” → “type” • “body” → “exact class” After this, you’ll have a working definition of virtual data. Another way to look at this is to distinguish “per-object” member functions from “dynamic” member functions. A “per-object” member function is a member function that is potentially different in any given instance of an object, and could be implemented by burying a f