设计一个float类型的数组类CFltArray,要求CFltArray可以进行如下操作:

来源:百度知道 编辑:UC知道 时间:2024/06/17 13:13:28
用C++实现
设计一个float类型的数组类CFltArray,要求CFltArray可以进行如下操作:
1. 可以重置数组的大小(Resize)
2. 可以通过下标返回数组元素,并对下标越界情况进行检查
3. 可以利用已知数组对象对整个数组赋值和初始化
4. 可以返回当前数组的大小(Size)
最后用数据验证你所设计的类

提示:
1. 利用已知数组对象对整个数组赋值,说明要求重载等号运算符
2. 利用已知数组对象对整个数组初始化,说明要求重载拷贝构造函数
3. 要求用指针存储数组对象中元素
http://topic.csdn.net/u/20080516/11/e0b07c93-51f0-412c-8bf1-fc0141169464.html
可参考下这个,不知道什么语言.改不成C++.
this.value = tmp;怎么改成c++的.改成this->value = tmp;
出现错误:
incompatiable types in assignment of 'float[((size-1)+1)]'to 'float[0]'
怎么把新数组赋给value数组呢?

#include <iostream>
using namespace std;

class flt
{
public:
flt(){size=0;}
flt(int s,float a[]);
void Resize(int size);
float operator [](int index) const;
int Get_Size() const;
private:
float * arr;
int size;
};

flt::flt(int s,float a[])
{
arr=new float[s];
for(int i=0;i<s;i++)
arr[i]=a[i];
size=s;
}

void flt::Resize(int new_size)
{
float * tmp=arr;
int old_size=size;
arr=new float[new_size];
for(int i=0;i<old_size;i++)
arr[i]=tmp[i];
delete [] tmp;
size=new_size;
}

float flt::operator [](int index) const
{
if(index>=size)
{
cerr<<"error!"<<endl;
return -1;
}
return arr[index];
}

int flt::Get_Size() const
{
return size;
}

int main()
{
float a[3]={1.0,2.0