罪恶1:
class TObject
{
public:
TObject();
~TObject();
private:
char _data[10];
};
TObject::~TObject()
{
delete _data;
}
罪恶2:
class TObject
{
public:
TObject();
~TObject();
private:
char* _data;
};
TObject::TObject()
{
}
TObject::~TObject()
{
delete _data;
}
罪恶3:
class TObject
{
public:
TObject();
~TObject();
private:
char* _data;
};
TObject::TObject()
{
_data = new char[1];
}
TObject::~TObject()
{
}
罪恶4:
class TObject
{
public:
TObject();
~TObject();
private:
char* _data;
};
TObject::TObject()
{
_data = new char[1];
}
TObject::~TObject()
{
delete _data;
}
罪恶5:
class TObject
{
public:
TObject();
~TObject();
virtual func();
};
class TObjectExd: public TObject
{
public:
TObjectExd();
~TObjectExd();
virtual func();
private:
char* _data;
};
TObjectExd::TObjectExd()
{
_data = new char[10];
}
TObjectExd::~TObjectExd
{
delete []_data;
}
TObjectExd::func()
{
// do some thing
}
void main()
{
TObject* pObj = new TObjectExd;
// do some thing
delete pObj;
}
罪恶6:
class TObject
{
public:
TObject();
~TObject();
virtual func(char* buffer);
};
TObject::func(char* buffer)
{
// do some thing
delete []buffer;
}
罪恶7:
class TObject
{
public:
TObject();
~TObject();
virtual func();
private:
void funcWithThrow() throw (TException);
};
TObject::func()
{
TAnotherObject *pObj = new TAnotherObject;
funcWithThrow();
delete pObj;
}