در هنگام طراحی گاهی نیاز است کلاس پایه تنها واسطی برای کلاس های مشتق شده خودش باشد و نمی خواهید کسی شیئی از نوع پایه ایجاد کند. این عمل با مجرد (abstract) کردن کلاس صورت می گیرد. برای مجرد کردن کافیست کلاس پایه حداقل یک تابع مجازی محض را داشته باشد.

تابع مجازی محض (pure virtual) تابعی است که در کلاس پایه اعلان شده است و تعریفی ندارد، هر کلاس مشتق شده باید نسخه مربوط به خود را تعریف کند. اگر کسی سعی کند شیئی از نوع کلاس مجرد ایجاد کند کامپایلر جلوی آنرا می گیرد.

بدنبال اعلان یک تابع مجازی محض =۰ قرار می گیرد.

وقتی یک کلاس مجرد به ارث برده می شود کلیه توابع مجازی محض باید پیاده سازی شوند یا کلاس مشتق شده هم باید مجرد باشد. ایجاد یک تابع مجازی محض اجازه می دهد تابعی را بدون نیاز به داشتن بدنه در کلاس پایه اضافه کنید. درضمنی که کلاس های مشتق شده را الزام به تعریف آن میکند.