完成程序题:请按空格顺序填写答案。
使程序可以正常运行,并释放内存。
#include <iostream.h>
________________
class A {
private:
T * data;
int length;
public:
A (int len){
length=len;
data=new T[len];
}
~A( ){
_________________
}
T& operator[](int i){
return data[i];
}
};
int main( ){
A<int> obj(2);
obj[0]=1;
obj[1]=2;
cout<<obj[0]<<endl;
cout<<obj[1]<<endl;
return 0;
}
【正确答案】:
第1空:TEMPLATE<CLASS T>
第2空:DELETE [ ]DATA;
【题目解析】:
声明类模板的一般格式如下:
故第1空:template<class T>
在创建对象时使用new运算符动态分配了内存空间,则在析构函数中应该使用delete释放掉这部分占用的空间,保证空间可再利用。
当使用delete释放动态对象数组时,必须告诉这个动态对象数组有几个元素对象,C++使用“[ ]”来实现。