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

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

تفاوت اعلان با تعریف چیست؟

+2 امتیاز
1,300 نمایش

این که در زبان C++ بعضی جاها از کلمه‌ی اعلان استفاده می‌شه و بعضی جاها از تعریف. (گاهی هم از معرفی)
این‌ها چه تفاوتی با هم دارن؟ اصلاً توی کتاب‌ها مورد کاربردش مشخص نمی‌کنه که چه تفاوتی دارن.

یک مشکل در مورد C++ این است که هم‌اکنون گرایشی قوی در زبان وجود دارد که شما را وادار می‌کند پیش از انجام هر کاری، همه‌ی جوانب آن را بدانید. (Larry Wall)
پرسیده شده جمعه ۳ آذر ۱۳۹۱ در C++ توسط CPP_Crawler2  
بازتگ شده پنجشنبه ۲۲ فروردین ۱۳۹۲ توسط admin

2 پاسخ

+1 امتیاز
 
بهترین پاسخ

اعلان فقط اعلام این نکته به کامپایلر هست که یه متغیر یا شیء یا تابع در برنامه وجود داره. مثلاً


...
int f();
void main(){
int a = f();
}
int f(){
...
}

در حالی که وقتی کامپایلر به int a = f() می‌رسه تابع f هنوز تعریف نشده اما اعلان شده. بنابراین کامپایلر اخطار نمی‌ده.
برای اشیا:

...
class C{
...
};
void main(){
C *obj;
...
obj = new C();
}

با خط C *obj اعلان اتفاق می‌افته و بنابراین می‌تونیم از شی‌ء استفاده کنیم هر چند از نظر اجرایی اخطار داره.
با خط obj = new C() تعریف می‌کنیم و حالا استفاده از شیء خطای زمان اجرا نداره.
هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده پنجشنبه ۱۷ اسفند ۱۳۹۱ توسط prodo  
انتخاب شده شنبه ۱۸ خرداد ۱۳۹۲ توسط admin
0 امتیاز

اعلان تابع برای اینه که شما به کامپایلر اطلاع بدین که همچین تابعی اگر در برنامه اصلی main دیدی، قراره تعریف بشه و تعریفش هست و به عنوان یه اسم ناشناخته باهاش برخورد نکن!
و تعریف تابع به معنی نوشتن بدنه‌ی تابع و نوشتن دقیق کاری که باید انجام بده هست.
نمیدونم الان مشخص شد براتون که تفاوتشون چیه یا نه. امیدوارم مفید بوده باشه.

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