我曾经分配函数范围的静态成员,因为当对这些函数的调用仅限于调试目的且内存非常有限时,它非常有效。我测试了下面的c++代码:
#include <stdio.h>
class myClass
{
public:
myClass(int index) : m_index(index)
{
printf("Constructing element %d\n", m_index);
}
~myClass(void)
{
printf("Destructing element %d\n", m_index);
}
int m_index;
};
void foo()
{
static myClass class1(1);
static myClass *class2 = new myClass(2);
return;
}
void main()
{
foo();
return;
}
打印输出是:
Constructing element 1
Constructing element 2
Destructing element 1
Press any key to continue . . .
我有没有导致内存泄漏? 元素1分配在哪里? 元素2分配在哪里?