我有一个带有指针的结构。它始终是动态分配的。因此,每当像这样创建对象时,我总是需要释放指针。
A obj;
obj->nums = new int(5);
delete obj->num;
struct A
{
int *num;
char c;
int val;
};
我可以在 A 内部有一个析构函数来管理指针变量的清理吗?即使我没有构造函数,我也可以拥有析构函数吗?所以我的新代码看起来像:
struct A
{
int *num;
char c;
int val;
~A()
{
delete num;
}
}A;
感谢您提前的帮助。
是的,你可以做到。 但为什么不在构造函数中动态分配内存呢!这样构造器就有了对称美。
是的。 C++ 中的结构是 一个类,但具有默认的公共访问权限和默认的公共继承。因此,结构体可以有构造函数、析构函数、成员函数等。