Vi scrivo il codice delle varie classei
codice:
#include <Windows.h>
#include <vector>
#include <crtdbg.h>
#include "classe_a.h"
using namespace std;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
PtrA->Init();
int h;
h=0;
return h;
}
codice:
//File classe_a.h
class ClasseA
{
public:
ClasseA();
virtual void Init();
};
extern ClasseA* PtrA;
//File classe_a.cpp
#include "classe_a.h"
ClasseA::ClasseA()
{
}
void ClasseA::Init()
{
int fkf=0;
}
File
codice:
//File classe_b.h
#include <Windows.h>
#include "classe_a.h"
class Bb: public ClasseA
{
public:
Bb();
void Init();
};
//File classe_b.cpp
#include "classe_b.h"
#include <vector>
using namespace std;
ClasseA* PtrA = new Bb();
Bb::Bb():ClasseA()
{
}
void Bb::Init()
{
vector<int> ss;
ss.push_back(43);
ss.clear();
}
Questo codice genera memory leak quando faccio ss.push_back(43);, perchè? i vector di int come possono generare memory leak
VVoVe: ?
Aiuto