我刚刚学习 c++,来自对 C 和 Java 的理解。我不太明白为什么我编写的某些代码不会泄漏内存。这是代码:
// Foo.h
class Foo {
private:
std::vector<int> v;
public:
Foo();
virtual ~Foo();
void add_int(int);
}
// Foo.cpp
Foo::Foo(): v () {}
Foo::~Foo() {}
Foo::add_int(int x) {
v.append(x);
}
存储在其中的向量v
显然在内部存储了一个指向堆分配内存的指针,需要释放它,但我从不释放它。然而,Valgrind 表示,使用此代码根本不会泄漏。我觉得理解为什么会有助于提高我对语言的理解。