Files
codeql/cpp/ql/test/query-tests/Critical/MemoryFreed/virtual.cpp
2018-08-02 17:53:23 +01:00

47 lines
518 B
C++

class ca {};
class cb {};
class cc {};
class cd {};
// --- myBaseClass ---
class myBaseClass
{
public:
myBaseClass() {
a = new ca; // GOOD
b = new cb; // GOOD
}
virtual ~myBaseClass() {
delete a;
delete c;
}
protected:
ca *a;
cb *b;
cc *c;
cd *d;
};
class myDerivedClass : public myBaseClass
{
public:
myDerivedClass() {
c = new cc; // GOOD
d = new cd; // GOOD
}
~myDerivedClass() {
delete b;
delete d;
}
};
void virtual_test()
{
myBaseClass *c = new myDerivedClass();
delete c;
}