一道在高手眼里很简单的C++题目

来源:百度知道 编辑:UC知道 时间:2024/07/01 07:19:23
#include<iostream.h>
class array{
int sizei; //整型数组的大小
int pointi; //整型数组中实际存放的元素个数
int sizer; //实型数组的大小
int pointr; //实型数组中实际存放的元素个数
int *pi; //指向整型数组,动态分配内存空间
int *pr; //指向实型数组,动态分配内存空间
public:
array(int si=100,int sr=200);
void put(int n); //将N加入整形数组中
void put(float x); //将X加入实型数组中
int geti(int index); //取整形数组中的第INDEX个元素
int getr(int index); //取实形数组中的第INDEX个元素
~array();
void print(); //分别输出整形和实型数组中的所有元素
};
构成完整的程序,即完成该类成员函数的定义和测试程序的设计,构造函数array(int si=100,int sr=200)中,si,sr分别为整形数组和实型数组的大小。
构成完整的程序,即完成该类成员函数的定义和测试程序的设计

代码如下,但没测试过,这只不过是一个简单的类定义
array::array(int si=100,int sr=200)
{
if(this->pi!=NULL)
delete this->pi;
if(this->sr!=NULL)
delete this->sr;
this->sizei=si;
this->sizer=sr;
this->sr=new float[sr];
this->pi=new int[si];
this->pointi=0;
this->pointr=0;
}
void array::put(int n)
{
if(this->pointi<this->sizei)
this->pointi++;
this->pi[this->pointi-1]=n;
}
void array::put(float x)
{
if(this->pointr<this->sizer)
this->pointr++;
else
{
printf("数组已满-[%d]",this->pointr);
return;
}
this->pr[this->pointr-1]=x;
}
int array::geti(int index)//index从0开始
{
if(index>=this->pointi)
{
printf("索引太大,超出数组实际最大个数");
return 0;
}
return this->pi[index];
}
float array::getr(int index)//index从0开始
{
if(index>=thi