小编Fro*_*odo的帖子

类的析构函数是否自动为 char * 类型的数据成员释放内存?C++

假设我有以下课程:

class A {
  public:
    A();
    ~A();
    //...some other functions

  private:
      char * data;
}
Run Code Online (Sandbox Code Playgroud)

问题 1:我是否必须明确定义析构函数,如下所示:

//destructor
A::~A() {
  delete [] data;
}
Run Code Online (Sandbox Code Playgroud)

或者,编译器是否隐式执行此操作?

问题 2:如果我在循环内重复使用 main 中相同的构造类,类的数据成员是否会A在每次循环后释放其内存?如果不是,我应该明确地这样做吗?

IE:

int main() {
    A obj;
    for (int i = 0; i < 3; ++i)
        getData(obj); //this function will store an input 3 times inside `data`
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ destructor

2
推荐指数
1
解决办法
1114
查看次数

标签 统计

c++ ×1

destructor ×1