读书人

一个课程习题帮解决下解决方法

发布时间: 2012-02-12 17:16:33 作者: rapoo

一个课程习题,帮解决下
要求:
编写一个程序,首先获取终端用户输入的数组维数,然后交互读取double值,并为每个值调用成员函数addValue().当完全填充Array对象之后,调用函数at()来显示多有的值。另外一定要编写一个执行深复制的复制构造函数
#include "stdafx.h "
#include <iostream>
#include <iomanip>

using namespace std;

class Array
{
public:
Array(int dim);
Array(Array const &);
~Array();
void addValue(double);
double at(int index) const ;

private :
double *ptrChar;
int dimension;
int top;

};//这是函数声明。上面声明的函数怎么实现呀


int main() //函数的调用
{
int dim;
cout < < "enter the dimension ";

cin> > dim;
if(dim <1)
return 1;
Array container(dim);
for(int i=0;i <dim;++i)
{
cout < < "enter a double value ";
double value;
cin> > value;
container.addValue(value);
}
Array anotherContainer(container);
for( i=0;i <dim;++i)
cout < <anotherContainer.at(i) < <endl;

return 0;
}
有人能把类里面的声明函数帮我补完整吗?我自己补了,编译都通过了,就是执行的时候老出问题,初学者,对类的理解还是有点肤浅
谢谢大家了

[解决办法]
Array::Array(int dim)
{
dimension=dim;
top=0;
ptrChar=new double [dim];
}
Array::Array(Array const & A)
{
dimension=A.dimension;
top=A.top;
ptrChar=new double [dimension];
ptrChar=A.ptrChar;
}
Array::~Array()
{
delete [] ptrChar;
}
void Array::addValue(double x)
{
if(top <dimension)
ptrChar[top++]=x;
else
at(x);
}
void Array::at(int index)const
{
cout < <x < <endl;
}

读书人网 >C++

热点推荐