V jednom C++ kóde som spravil chybu a relatívne ma to prekvapilo. Aj keď po tom čo som si uvedomil, že to je chyba tak to bolo hneď zrejmé. Zjednodušene som túto chybu zaniesol do nasledujúceho kódu - nájdete chybu/chyby? Viete povedať čo sa stane bez toho aby ste spustili tento kód? A ako by ste ho opravili?
class A
~A()
virtual void Initialize()
virtual void Deinitialize()
virtual void Initialize()
virtual void Deinitialize()
char *GetMemory()
printf( b.GetMemory());
return 0;
#include <string.h>
{
public:
A()
{
Initialize();
}
~A()
{
Deinitialize();
}
virtual void Initialize()
{
}
virtual void Deinitialize()
{
}
};
class B : public A
{
public:
char *m_pMemory;
B()
{
m_pMemory = NULL;
}
virtual void Initialize()
{
m_pMemory = new char[ 200];
strcpy( m_pMemory, "Pekne nam to funguje\n");
}
virtual void Deinitialize()
{
if ( m_pMemory)
delete []m_pMemory;
}
char *GetMemory()
{
return m_pMemory;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
B b;
B b;
printf( b.GetMemory());
return 0;
}