ইন্টারফেস (Interface) এবং ইমপ্লিমেন্টেশন (Implementation) পৃথক করার জন্য।
- হেডার ফাইল (.h/.hpp): "কী" (What) - ক্লাসের API, পাবলিক মেথড, ডেটা মেম্বার ঘোষণা। Java-র ইন্টারফেসের মতো।
- সোর্স ফাইল (.cpp): "কীভাবে" (How) - ফাংশনগুলোর বাস্তব বাস্তবায়ন।
সুবিধা:
- ডিপেন্ডেন্সি কমায় - ক্লায়েন্ট কোড ইমপ্লিমেন্টেশন ডিটেইল না জানে কাম চালাতে পারে।
- কম্পাইল টাইম কমায় - ইমপ্লিমেন্টেশন পরিবর্তন হলে শুধু .cpp রিকম্পাইল করলেই চলে, সব ক্লায়েন্ট রিকম্পাইল লাগে না।
- এনক্যাপসুলেশন - প্রাইভেট ডিটেইল হেডারে এক্সপোজ হয় না (PIDII ইডিওম ব্যবহার করলে)।