假设我有以下课程:
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)