C++-এ ডিক্লেয়ারেশন এবং ডেফিনিশন প্রায়শই গুলগুলি হয়। ডিক্লেয়ারেশন (Declaration) মানে (C-এ) আপনি কম্পাইলারকে কোনো ভেরিয়েবল, ইউজার-ডিফাইনড টাইপ বা ফাংশনের টাইপ, সাইজ এবং ফাংশন ডিক্লেয়ারেশনের ক্ষেত্রে এর প্যারামিটারদের টাইপ ও সাইজ সম্পর্কে জানাচ্ছেন। ডিক্লেয়ারেশনের কেসে কোনো ভেরিয়েবলের জন্য মেমরিতে কোনো স্পেস রিজার্ভ করা হয় না।
দूसरी तरफ़ ডেফিনিশন (Definition) মানে ডিক্লেয়ারেশনের সব কিছুর পাশাপাশি মেমরিতে অতিরিক্ত স্পেস রিজার্ভ করা হয়। আপনি বলতে পারেন: "DEFINITION = DECLARATION + SPACE RESERVATION"।
নিচে ডিক্লেয়ারেশনের কিছু উদাহরণ:
extern int a; // ভেরিয়েবল a ডিক্লেয়ার করা হচ্ছে কিন্তু ডিফাইন করা হচ্ছে না
struct _tagExample { int a; int b; }; // একটি স্ট্রাকচার ডিক্লেয়ার করা হচ্ছে
int myFunc (int a, int b); // একটি ফাংশন ডিক্লেয়ার করা হচ্ছে
অন্যদিকে ডেফিনিশনের উদাহরণ:
int a;
int b = 0;
int myFunc (int a, int b) { return a + b; }
struct _tagExample example;