这段代码不是我写的!在 WebServer 类中,我们重载了 +=operator。该类使用动态分配的 WebPage(另一个类,组合)类型的对象数组,定义为 WebPage *wp;
WebServer & operator +=( WebPage webPage ) {
WebPage * tmp = new WebPage [ count + 1];
for (int i = 0; i < count ; i ++)
tmp [i] = wp[i];
tmp [ count ++] = webPage ;
delete [] wp;
wp = tmp;
return * this ;
}
因此,我们为一个对象创建了一个新的动态分配的 WebPage 数组,并为一个对象分配了额外的空间,然后我们为它们分配了 wp 保存的值,然后是我们想要添加到数组中的对象。因此,如果我删除delete[] wp;
该程序仍然可以正常工作。那么如果我删除那行代码会发生什么?还有wp = tmp,这是什么意思,wp只是一个动态的新名称,所以它适合类中的名称,但内存中的位置仍然相同?或者?