اعضای خصوصی همیشه خصوصی هستند اما گاهی می خواهید اعضائی را از خارج مخفی کنید ولی در کلاس مشتق شده قابل رویت باشند. کلمه protected می گوید که اعضای محافظت شده برای هر کسی که از این کلاس ارث می برد قابل دسترس است و برای بقیه خصوصی است.
مثال. توابع set و read از کلاس Base درمثال قبل در کلاس مشتق شده Derived قابل رویت هستند ولی در برنامه مخفی هستند.
با قرار دادن کلمه protected قبل از نام کلاس مشتق شده اعضای محافظت شده و عمومی کلاس پایه به اعضای محافظت شده کلاس مشتق شده اضافه خواهند شد. بنابراین برای وارثین کلاس مشتق شده در دسترس است و برای بقیه پنهان باقی می ماند
نکته. در کلیه حالات اعضای خصوصی کلاس پایه در وراثت شرکت نمی کنند و خصوصی باقی می مانند.
نکته. معمولا توارث عمومی است تا رابط کلاس پایه همچنان رابط کلاس مشتق شده باشد.
نکته. توارث محافظت شده خیلی استفاده نمی شود و فقط برای تکمیل زبان برنامه نویسی است.
نکته. مناسب ترین روش این است که اعضای داده ای کلاس را صورت خصوصی تعریف کنید تا امکان تغییر پیاده سازی زیرین حفظ شود. و به وارثین کلاس مجوز دسترسی کنترل شده ای به توابع عضو محافظت شده بدهید.