Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Intermediate
Feb 23, 1999

A vector<Base> Should Not Store Derived Objects

A vector stores its elements contiguously in memory (although this is not a requirement in the Standard, in practice, all implementations use contiguous storage). Consequently, each element in a vector must have the same size. Since a derived object may have additional members, its size may be larger than the size of its base class. Thus, storing a derived objects in a vector<Base> should be avoided because it may cause object slicing and memory overruns, with disastrous results at run time.
Danny Kalev
 
Comment and Contribute

 

 

 

 

 


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

 

 

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