ورود

نسخه کامل مشاهده نسخه کامل : مفهوم این اشاره گر



Petros
05-10-2011, 13:48
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

یکی اون قسمت داخل حلقه For توی Main رو توضیح بده یعنی چی؟
وقتی شی درست میکنیم باید سازنده صدا زده بشه. این در مورد آرایه صدق نمیکنه؟
کلا اون یه تیکه یعنی چی؟

Life24
05-10-2011, 19:18
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدیکی اون قسمت داخل حلقه For توی Main رو توضیح بده یعنی چی؟
وقتی شی درست میکنیم باید سازنده صدا زده بشه. این در مورد آرایه صدق نمیکنه؟
کلا اون یه تیکه یعنی چی؟

سلام.
من خودم مسلط نيستم راستش اين قسمت ها رو :31:
اما در حد توانم ميگم.
در تابع مين اومده اندازه 5 تا student اومده فضا گرفته و اصطلاحا شي ها رو درست كرده.
وقتي شي رو درست ميكنيم سازنده صدا زده ميشه.
اينجا سازنده همون student هست كه ازت اسم و فاميل ميخواد.
اينجا 5 تا شي اري هر كدام يك اسم و فاميل پس 10 تا اسم و فاميل بايد از ورودي بهش بدي.
اون قسمت حلقه فور هم كار خاصي نميكنه. فقط ميتونه بره داخل شي ها و هيچ كار ديگه نميكنه.

ميشه از حلقه فور براي چاپ كردن هم استفاده كرد.
مثلا من اين طورش كردم.




#include <iostream.h>

class student{
private:
char *Firstname;
char *Lastname;
public:
student();
print();
};

student::student(){
Firstname = new char;
Lastname = new char;
cin >> Firstname >> Lastname;
}

student::print ()
{
cout<<Firstname<<endl;
cout<<Lastname<<endl;
}

int main()
{
student *N= new student[2];
for (int i=0;i<2;i++){
N[i].print();
}



return 0;
}

Petros
05-10-2011, 21:13
خیلی ممنون

ولی داخل حلقه For سازنده ها صدا زده میشن!!!

Life24
05-10-2011, 21:37
خیلی ممنون

ولی داخل حلقه For سازنده ها صدا زده میشن!!!
نه
چطور داخل حلقه فور :18:
شما تريس كن برنامه رو.
هر بار كه شي ايجاد ميكنه . سازنده مياد و ازت اسم و فاميل ميگيره
بعد كه تمام مبيشه ميره تو حلقه فور :40:

Petros
05-10-2011, 22:19
اوه اوه چه سوتی فجیعی و دردآورانگیزناکی دادم!

آقا اگه همین سازنده من یه پارامتر int بگیره اونوقت تعریف آرایه از اشاره گر ها تو مثال بالا چه جوری میشه؟ من نمیخوام یه سازنده دیگه بسازم
مثلا: student::student(int i)

Petros
05-10-2011, 23:04
دو تا سوال دیگه هم دارم. جواب بدید یه خانواده رو از نگرانی برهانید.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

وقتی از تابع فراخوان این تابع صدا زده میشه دقیقا چی جایگزین نام تابع میشه؟
مثلا وقتی یک عدد اینتیجر برگشت داده میشه اون عدد جای نام تابع میشینه! الان چی؟ وقتی که یه مرجع برگشت داده میشه چی جای نام تابع میشینه؟

در مورد اشاره گر چه طور؟

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Petros
06-10-2011, 19:36
آقا جواب پست شماره 5 رو پیدا کردم.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اول اشاره گرای آویزان درست میکنیم، بدون New کردن و قبل از حافظه گرفتن.
بعدش چون سازنده رو نمیشه به هیچ عنوان صداش زد، از نام کلاس استفاده میکنیم.

Life24
08-10-2011, 18:25
سلام
شرمنده داداش
من حواسم به سوالت بود. من خودم يك ماه هست اين مباحث رو خوندم.
متوجه ميشم سوالات رو و خودم هم ميفهمش
اما راستش نميتونم توضيح بدم چون مطمئن نيستم استدلالم درست باشه. و راهنمايي غلط صورت بگيره

Petros
08-10-2011, 21:02
آقا من خودم یه توجیه بعد از چند ساعتی ور رفتن پیدا کردم

اینکه دقیقا همون که جلوی return برگشت داده میشه. مثلا nValue دقیقا خود nValue رو میفرسته و نه مقدارش.
توی اشاره گر هم دقیقا آدرس برگشت داده میشه. یعنی همون که جلوی return هست.

با همین استدلال کارم راه افتاده. به نظر هم درسته!!!