给出类外定义下面是一个整型数组类intArray的声明,请给出该类所有数据成员的类外定义。class intArray{publ
给出类外定义
下面是一个整型数组类intArray的声明,请给出该类所有数据成员的类外定义。
class intArray
{public:
intArray(int size);//构造函数
intArray(const intArray &x);//复制构造函数
~intArray();//析构函数
bool Set(int i, int elem);//设置第i个数组元素的值,设置成功返回true,失败返回false
bool Get(int i, int &elem); //获取第i个数组元素的值,获取成功返回true,失败返回false
int Length( ) const;//获取数组的长度
void ReSize ( int size ); //重置数组
void Print();//输出数组
private:
int *element; //指向动态数组的指针
int arraysize; //数组的当前长度
};
[解决办法]
intArray::intArray(int size):arraysize(size) {
element=new int[size];
}
intArray::intArray(const intArray &x):arraysize(size) {
element=new int[size];
}
intArray::~intArray() {
delete[] element;
}沒有賦值運算符...
[解决办法]
bool intArray::Set(int i, int elem) {
if (i>=arraysize)
return false;
element[i]=elem;
return true;
}
bool intArray::Get(int i, int &elem) {
if (i>=arraysize)
return false;
elem=element[i];
return true;
}
int intArray::Length() const {
return arraysize;
}
void intArray::ReSize(int size) {
delete[] element;
element=new int[size];
arraysize=size;
}
void intArray::Print() {
// 你想怎輸出?
}[解决办法]
沒有賦值運算符可能會發生內存泄漏
