devxlogo

Dynamic Type Versus Static Type

Dynamic Type Versus Static Type

The type of the most derived object to which an expression refers is said to be the dynamic type of that expression. For example, if p is declared as a pointer to class B and it’s actually pointing to an object of class D (when D is derived from B), the dynamic type of the expression “*p” is “D”. References are treated similarly. For example:

   void func( B * p) // the static type of "*p" is "B"  {    D d = *p;  // however, the dynamic type of "*p" is "D"  }  int main  {    D d;    func( &d);  }

The dynamic type of an expression is determined at runtime whereas its static type is determined at compile-time.

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist