PDA

View Full Version : مشکل با آرایه ای از کلاس و مقدار دهی به آن



alinaghiha
سه شنبه 11 تیر 1392, 09:06 صبح
صبح بخیر من یه کلاس برای چند جمله ای ها در سی شارپ 2008 نوشتم



public class cls_ozv
{
private int data;
private int zarib;
private void set_data(int a){data=a;}
private void set_zarib(int b){ zarib=b;}
private int get_zarib(){return(zarib);}
public cls_ozv(){data=0;zarib=0;}
public int get_data(){return(data);}
public void add_data(int a,int b)
{
set_data(a);
set_zarib(b);

}

public string show()
{
if (get_data() > 0)
return ("+" + get_data() + "x^" + get_zarib());
else if (get_data() < 0)
return (get_data() + "x^" + get_zarib());
else
return ("");

}




بعدش اومدم آرایه تعریف کردم


cls_ozv[] a = new cls_ozv[20];


اول نمی شد به آرایه مقدار بدم


a[2].add_data(1, 5);

مجبور شدم این کارو بکنم


cls_ozv test = new cls_ozv();
for (int i = 0; i < 20; i++)
{
a[i] = test;
b[i] = test;
}
test.add_data(1, 5);
a[2] = test;

اما حالا با تغییر یکی از عناصر آرایه این مقدار تو همه آرایه اعمال میشه
یعنی همه آرایه مقدار 1 و 5 رو میگیره
دیونه شدم میشه کمکم کنید

saied_hacker
سه شنبه 11 تیر 1392, 09:21 صبح
شما وقتی از روی یک کلاس و یا ساختار می خواهید داخل یک ارایه استفاده کنید باید به تک تک اعضا به صورت داینامیک حافظه اختصاص بدید.

cls_ozv[] a = new cls_ozv[20];

for (int i = 0; i < 20; i++)
{
a[i] = new cls_ozv();
a[i].add_data(1, 5);
}