PDA

View Full Version : سوال: ساخت آرایه



hafez1
دوشنبه 13 آذر 1391, 00:27 صبح
من یه کلاس person به این صورت دارم.

class person{
public:
void set(string f,string l)
{
fname=f;
lname=l;
}
private:
string fname;
string lname;
};

می خام یه ارایه از این کلاس بگیرم با طولی که کاربر مشخص می کنه.
این درسه؟
string array[100]=new person;
کامپایلر که خطا می گیره.

hafez1
دوشنبه 13 آذر 1391, 00:37 صبح
اگه بخام واسه همین کلاس اسمارو از یه فایل با تابع set بگیرم باید چطور بنویسم؟


fstream read;
read.open ("D:/Input1.txt");


if(!read) {

cerr << "Error" << endl;

}
for ( i = 0 ; !read.eof() ;i++) {
......................................؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟چطور با set از فایل ورودی بگیره؟

jannatmakan
دوشنبه 13 آذر 1391, 01:12 صبح
من یه کلاس person به این صورت دارم.

class person{
public:
void set(string f,string l)
{
fname=f;
lname=l;
}
private:
string fname;
string lname;
};

می خام یه ارایه از این کلاس بگیرم با طولی که کاربر مشخص می کنه.
این درسه؟
string array[100]=new person;
کامپایلر که خطا می گیره.

معلمومه که درست نیست برادر! دو حالت داره. یا آرایه ی شما ایستاست(یعنی طولش در کد مشخّص شده) و یا پویاست (طولش در طیّ برنامه از کاربر گرفته می شه.) و مسلّماً زمانی که شما می خوای طول آرایه 100 باشه مثلاً نیازی به استفاده از کلمه ی new نداری . بلکه باید این طوری بنویسی :

person a[100];


امّا اگر هم خواستی که طول آرایت پویا باشه و از کاربر گرفته بشه بدین صورت باید بنویسی:


person *a;
int n;

cout<<"tool ra vared konid:";
cin>>n;

a=new person [n];


که درک مطلب بالا زمانی میسّر است که اشاره گر ها و عملگر new رو بشناسید. باز هم اگر نیاز به توضیح داشتی بگو، تا بگم.

H_G_G_I
دوشنبه 13 آذر 1391, 10:31 صبح
جدا از اینکه ارایه رو پویا در نظر نگرفتی ! نوعی هم که نیو کردی با نوع ارایه فرق داره !
string array[100]=new person
-
نوع رو گذاشتی string اما person نیو کردی !:قهقهه: