-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()',也沒有任何間接使用它的類。 –