-2
假设我有这个基本的C++类:类和内存的初始化泄漏
class Foo
{
public:
void Foo() {m_a=0; m_b=0;}
void Foo(int a, int b)
{
m_a=a;
m_b=b;
}
void setA(int a) {m_a=a;}
void setB(int b) {m_b=b;}
static void init(int a, int b, Foo* foo)
{
if(foo) *foo = Foo(a, b);
}
private:
int m_a;
int m_b;
};
,并在我的主类我做的:
int main()
{
Foo f;
Foo::init(1, 2, &f);
Foo::init(1, 2, &f);
Foo::init(1, 2, &f);
}
有没有在这个程序中的内存泄漏?它是一个很好的做法,初始化类一样,或者是preferrable一样的东西:
static void init(int a, int b, Foo* foo)
{
if(foo){ foo->setA(a); foo->setB(b); }
}
你尝试编译代码:初始化与构造做了什么? – Svalorzen
你没有动态分配任何东西(使用'new'或'malloc'),所以没有什么可以释放的(使用'delete'或'free'')。所以,没有泄漏。 – juanchopanza
这里应该泄漏什么?我找不到任何一个'new()',也没有任何间接使用它的类。 –