C++类中的字符数组成员

3

我在我的c++类成员中有:

char array[24];

在析构函数中该怎么处理这个成员变量,或者可能什么都不需要做?感谢您的建议。

2个回答

5

没事。你不需要手动为数组分配空间, 所以你也不应该手动释放它。


2
有点类似,但并不完全相同。正确的答案是没有,但数组不一定在堆栈上。它取决于对象的分配位置。所以如果c是通过new进行分配的,那么array的内存就在堆中,但会在delete c;的过程中自动清理掉。 - Anthony

1

分配/释放适用于在自由存储中构造的对象(使用malloc/new等)。 类中的数组的生命周期与类的对象相同。因此,您应该关注处理对象的分配/释放,而不是它们的成员(当成员不是指针时)。

当成员变量是指针并且它指向动态分配的内存/对象时,则需要将其释放(最好在析构函数中)。

例如:

class A { };

class B {

    A* a;

    B() { 
        a = new A;
    }

    ~B() { 
        delete a; 
    }
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接