【发布时间】:2021-08-05 04:09:19
【问题描述】:
#include<iostream>
#include<stdlib.h>
using namespace std;
class quasar{
int quark;
int *series;
public:
quasar(){
quark=0;
}
quasar(int a){
quark=a;
}
void *operator new(size_t){
quasar*p;
p=(quasar*)malloc(sizeof(quasar));
p->series=new int[5];
return p;
}
void operator delete(void *n){
free(n);
}
void input(){
cout<<"enter your values\n";
for(int i=0;i<5;i++){
cin>>series[i];
}
}
void display(){
for(int i=0;i<5;i++){
cout<<series[i];
}
}
};
int main(){
quasar *q=new quasar;
q->input();
q->display();
cout<<endl;
delete q;
q->display();
}
在上面的代码中,当我重载 new 和 delete 运算符时,我还为数据成员指针“系列”动态分配了内存。因此,当我删除对象指针时,分配给数据成员指针的内存,即此代码中的系列也被释放了?
【问题讨论】:
标签: c++ dynamic-memory-allocation