#include <iostream.h> 

________________
class A {
private:
T * data;
int length;
public:
A (int len){
length=len;
data=new T[len];
}
~A( ){
_________________
}
T& operator[]

完成程序题:请按空格顺序填写答案。

使程序可以正常运行,并释放内存。 


 #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++使用“[ ]”来实现。


Top