خب اعلان به عنوان معرفی شناسه و توصیف برای یک نوع متغیر، شیء و یا تابع هست. اعلان چیزیه که کامپایلر به اون احتیاج داره تا هرگونه ارجاع به اون شناسه رو قبول کنه. انواع اعلان:
extern int bar;
extern int g(int, int);
double f(int, double); // extern can be omitted for function declarations
class foo; // no extern allowed for class declarations
و تعریف در حقیقت پیادهسازی این شناسهست. دستورات زیر تعاریف اعلانهای بالاست:
int bar;
int g(int lhs, int rhs) {return lhs*rhs;}
double f(int i, double d) {return i+d;}
class foo {};
تعریف میتونه به جای اعلان هم استفاده بشه.
و یک شناسه میتونه هر وقت که بخواین اعلان بشه.