C++ में, डिक्लेरेशन और डेफिनिशन अक्सर भ्रमित होते हैं। डिक्लेरेशन का मतलब (सी में) है कि आप कंपाइलर को अपने प्रोग्राम में टाइप, साइज और फंक्शन डिक्लेरेशन के मामले में, किसी वेरिएबल के इसके पैरामीटर्स के टाइप और साइज, या यूजर-डिफाइंड टाइप या फंक्शन के बारे में बता रहे हैं। घोषणा के मामले में किसी भी चर के लिए स्मृति में कोई स्थान आरक्षित नहीं है।
दूसरी ओर परिभाषा का अर्थ है कि उन सभी चीजों के अतिरिक्त जो घोषणा करती है, स्मृति में स्थान अतिरिक्त रूप से आरक्षित है। आप कह सकते हैं "परिभाषा =घोषणा + अंतरिक्ष आरक्षण"।
निम्नलिखित घोषणाओं के उदाहरण हैं -
extern int a; // Declaring a variable a without defining it
struct _tagExample { int a; int b; }; // Declaring a struct
int myFunc (int a, int b); // Declaring a function परिभाषा के उदाहरण निम्नलिखित हैं -
int a;
int b = 0;
int myFunc (int a, int b) { return a + b; }
struct _tagExample example;