新手C++问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 10:07:55
CLASS A
{
……
double x[99],y[99]
public:
void getnumx()
{
for(i=0;i<n;i++)
{
cout<<"please input x"<<i+1<<endl;
cin>>x1[i];
}
}
……
}
如何把上面的X[],Y[]数组变为自由分配的,就是说不用给定99这个空间的,而是根据N的值而定,是不是一定要用链表?谁能给个如何实现的方法(用链表也行)
那个NEW要具体怎么用,能把上个例子中的循环体里的内容实现一下不

是啊,使用2个指针。然后动态分配。
但这样问题是,应该用成员函数或友元函数来分配,否则,因为它们是私有成员,不能访问。

没看懂,你想在循环体里变干什么啊?实现哪些操作!说清楚!是不是给数组赋值?

算了,给你一段完整的代码看吧,我刚刚写的,包含你想要的功能:
#include<iostream.h>
class A
{
public:
A();
~A();
void allot(int); //用来分配内存,建立数组
void set(int); //用来设定数组各个元素的数据
void get(int); //得到数组各个元素的数据
private:
int *pint; //用了一个指针就搞定啦!
};
A::A()
{
pint=NULL;
}
A::~A() //认识析构函数吧?
{
delete [] pint;
}
void A::allot(int n)
{
pint=new int [n];
}
void A::set(int k)
{
int i=0;
for(i;i<k;i++)
cin>>pint[i];
}
void A::get(int t)
{
int i=0;
for(i;i<t;i++)
cout<<pint[i]<<" ";
}

main()
{
int n;
A a;
cout<<"输入想建立多大的数组:";
cin>>n;
a.allot(n);
cout<<"输入各个数据,每输入一个,按回车!"<<endl;