Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Beginner
Feb 22, 2000

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.

Danny Kalev
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date