در مقایسه با C زبان ++C ویژگیهای جدیدی را معرفی نمودهاست مانند تعریف متغیر به عنوان عبارت، تغییر نوعهای همانند تابع، new/حذف، نوع داده bool، توابع درونخطی، آرگومان پیش فرض، گرانبارسازی عملگر و تابع، فضای نام و عملگر تعیین حوزه ::،
کلاسها (شامل تمام ویژگیهای مربوط به کلاسها همانند وراثت، اعضای تابع، توابع مجازی، کلاسهای انتزاعی، و سازندهها)، قالبها، پردازش استثنا، کنترل نوع زمان اجرا، عملگرهای سربار شده ورودی (<<) و خروجی (>>).برخلاف باور عموم ++C نوع داده ثابت را معرفی ننمودهاست. کلمه const کمی پیش از استفاده از این کلمه در ++Cتوسط زبان C بصورت رسمی بکار گرفته شد.بستهبندی به معنای جمعآوری عملیات و داده در یک محل میباشد.
سی++ بستهبندی را با ایجاد امکان تعریف هر کلاس به صورت public، private، protected پیاده سازی نمودهاست. اعضای private فقط توسط اعضای کلاس و یا کلاسها دقیقا بیان شده (friend) قابل دسترسی هستند. اعضای protected توسط کلاسهای ارث برده شده و اعضای کلاس و کلاسهای friend قابل دسترسی هستند.در تعاریف شیگرا باید تنها توابعی بستهبندی گردند که باید از نحوه پیاده سازی این نوع بخصوص اطلاع داشته باشد. سی++ این ویژگی را با استفاده از توابع عضو و توابع دوست فراهم نموده اما قطعی نکردهاست.
در سی++ این امکان وجود دارد که تمام نوع را عمومی تعریف نمایند اما در صورتی که نیاز باشد فقط بخشی از آن عمومی گردد در نتیجه این زبان نه تنها شیگرا است بلکه از مدلهای ضعیفتر همانند برنامهنویسی مدولار پشتیبانی مینماید.