自定义类内存管理问,请指教!
//class.h
class myclss
{
public:
int nvar;
double* savevar;
public:
myclss(){};
myclss(int var);
~myclss();
};
//class.cpp
#pragma once
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#include "class.h"
#define new new(_CLIENT_BLOCK,__FILE__,__LINE__)
myclss::myclss(int var)
{
this->savevar=(double*)malloc(sizeof(double)*var);
}
myclss::~myclss()
{
if(!savevar)
{
free(savevar);
savevar=NULL;
}
}
//main.cpp
#pragma once
#include "class.h"
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#include <assert.h>
#define new new( _CLIENT_BLOCK,__FILE__,__LINE__)
void Exit()
{
int i=_CrtDumpMemoryLeaks();
assert(i==0);
}
int main()
{
atexit(Exit);
myclss t(2);
//_CrtDumpMemoryLeaks();
return 0;
}