اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

چرا اگر بعد از استفاده از اشاره گر اونو تعریف کنیم خطایی ایجاد نمیشه؟

+1 امتیاز
77 نمایش

مثلا اینجا:

list(){
    root=0;
      }
node * root;

درصورتی که برای متغیر های معمولی خطا میگیره.

پرسیده شده جمعه ۲۹ دی ۱۳۹۱ در C++ توسط HamidH  
بازتگ شده چهارشنبه ۲۸ فروردین ۱۳۹۲ توسط admin

2 پاسخ

+1 امتیاز

شما باید ببینین در کجای برنامه هستین و در مورد چی صحبت میکنین؟
اینطور ک من از این چند خط کد (اگه در سوال هاتون قطعه کد کامل رو بذارید خیلی بهتره) متوجه شدم، شما میخواین یک لیست پیوندی بنویسین، که خب برای این کار شما یک کلاس تعریف میکنید و یک اشاره‌گر به نوع داده‌ای خاص (میتونه ساختار یا کلاس دیگه ای باشه.) به طور خصوصی تعریف میکنید.
بعد از طریق توابعی که بصورت عضو تو این کلاستون دارین، به اون متغیر (اشاره‌گر) دسترسی خواهید داشت و نیازی به تعریف نداره و میتونید باهاش کار کنید، بهش مقدار بدین و ...
و خب اضافه میکنم که درسته که از نظر ترتیبی الان کدی که شما برای تعریف اون اشاره‌گر نوشتین بعد از اینه که بهش مقدار دادین، ولی جا داره که بهتون مفهوم تولد یک شیء از نوع کلاس رو یادآوری کنم. و اینکه توابع عضو بعد از اینکه شما یک شیء از نوع کلاستون تعریف کردین و کامپایلر حافظه‌ای در اختیارش گذاشت، بعد از اون فراخونی میشه.
پس هیچ دلیلی نداره که خطایی ایجاد بشه :)

پاسخ داده شده جمعه ۲۹ دی ۱۳۹۱ توسط CPP_Crawler4  

ممنون.درسته لیست پیوندی بوده.
من این کد رو از کس دیگه ای گرفتم.یه سوال دیگه هم داشتم
چرا اسم این تابع اگه چیزی به جز list باشه خطا میگیره؟(اسم struct اصلی هم list است)

من متوجه منظورتون نمیشم.
اگه ممکنه کدتون رو در سوالی جداگانه که مطرح میکنید، بذارید رو سایت تا بتونیم کمکتون کنیم.

0 امتیاز

در تعریف کلاس ترتیب متغیرها و توابع اهمیت ندارد. به همین راحتی. ولی در توابع (که main رو هم شامل می‌شه) اهمیت دارد.

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده جمعه ۲۹ دی ۱۳۹۱ توسط prodo  

و تازه این چیزی که شما نوشتین تعریف نیست. اعلانه. اعلان با تعریف فرق داره.