ഒരു ക്ലാസ്സിനെ മെമ്മറിയിൽ എങ്ങനെ വെയ്ക്കണം എന്നത് സി++ സ്റ്റാൻഡേർഡ് നിഷ്കർഷിയ്ക്കാറില്ല. ഇത് കംപൈലർ ഉണ്ടാക്കുന്നവരുടെ സ്വാതന്ത്ര്യത്തിനു വിട്ടുകൊടുത്തിരിയ്ക്കുകയാണ്. സാധാരണയായി ഒരു ക്ലാസ്സിൽ നിന്നും മറ്റൊന്ന് ഇൻഹെറിറ്റ് ചെയ്യുമ്പോൾ രണ്ടു ക്ലാസ്സിലെ ഡാറ്റ ചരങ്ങളും മെമ്മറിയിൽ ഒന്നിനു പിറകെ മറ്റൊന്നായി വെയ്ക്കുകയാണ് ചെയ്യുക.ഇങ്ങനെ ചെയ്യുകയാണെങ്കിൽ ബേസ് ക്ലാസ്സിന്റെ ഒരു പോയിന്റർ വെച്ച് സൂപ്പർ ക്ലാസ്സിനെ ഉപയോഗിയ്ക്കാൻ എളുപ്പമാകും.

താഴെ കൊടുത്തിരിയ്ക്കുന്ന ഉദാഹരണം ശ്രദ്ധിയ്ക്കുകcodice_30 യുടെ ഒരു ഒബ്ജെക്ടിലേയ്ക്ക് ചൂണ്ടുന്ന codice_31 എന്നൊരു പോയിന്റർ ഉണ്ടെന്നിരിയ്ക്കട്ടെ. ഇതിന്റെ മെമ്മറി ക്രമീകരണം (memory layout) താഴെ കാണുന്നത് പോലെയായിരിയ്ക്കും:
ഇനി ഇത് codice_32 യുടെ ഒബ്ജക്റ്റ് ആണെങ്കിൽ താഴെ കാണുന്നത് പോലെ ഇരിയ്ക്കും:
അതിനാൽ codice_30 എന്ന ക്ലാസ്സിന്റെ ഒബ്ജെക്ടിന്മേൽ പ്രവർത്തിയ്ക്കുന്ന ഒരു പോയിന്റർ ഉണ്ടെങ്കിൽ codice_32 എന്ന ടൈപ്പിലുള്ള ഒബ്ജെക്ടിന്റെ ഉള്ളിലുള്ള codice_30 യുടെ ഡാറ്റാ ചരങ്ങളെയും അതിന് സമീപിയ്ക്കാൻ സാധിയ്ക്കും. എന്നാൽ ഇത്തരത്തിൽ സി++ ഭാഷ എങ്ങനെ ഇമ്പ്ളേമെന്റ് ചെയ്തിരിയ്ക്കുന്നു എന്നതിനെ അടിസ്ഥാനമാക്കി പ്രോഗ്രാമുകൾ എഴുതുന്നത് ആശാസ്യമല്ല. അതിനാൽ തുടങ്ങിയ ടൈപ്പ് കോൺവെർഷൻ ഓപ്പറേറ്ററുകൾ ഉപയോഗിച്ചാണ് ഒരു ടൈപ്പ് പോയിന്ററിനെ മറ്റൊരു ടൈപ്പ് അയക്കേണ്ടത്.

ഒരു ക്ലാസ് രണ്ടു വ്യത്യസ്ത ക്ലാസ്സുകളിൽ നിന്നും ഇൻഹെറിറ്റ് ചെയ്യുന്ന അവസ്ഥയിൽ ഇത് വളരെ സങ്കീർണമാകും.

പിഓഡി സ്ട്രക്ടുകൾ (POD അഥവാ plain old data object struct)
ഇൻഹെറിറ്റൻസ്
അടിസ്ഥാന കോൺസ്ട്രക്ടർ (Default constructor)
ഒരു ക്ലാസ്സിന്റെ അംഗങ്ങളായ മെത്തേഡുകൾ