برنامه‌نویسی شیءگرا یا OOP، یک زبان برنامه‌نویسی جدید نیست؛ بلکه یک سبک برنامه‌نویسی است که برای مدیریت برنامه‌های بزرگ به کار می‌رود. بدون استفاده از OOP مدیریت برنامه‌های بزرگ بسیار دشوار یا تقریبا غیر ممکن است؛ به خصوص زمانی که قصد دارید تا یک برنامه را به صورت تیمی تولید نمایید.

شیءگرایی از مفهوم شیء برای تولید برنامه‌ها استفاده می‌کند که دارای مفاهیم وراثت، چند ریختی، کپسوله‌سازی و ماژولار بودن استفاده می‌کند. این سبک برنامه‌نویسی تا قبل از سال ۱۹۹۰ چندان استفاده‌ای نداشت؛ اما در زمان حال این نوع برنامه‌نویسی در بسیاری از زبان‌های برنامه‌نویسی پیاده‌سازی شده است و به طور گسترده از آن استفاده می‌شود. کلاسها در زبان C++ برای اعمال این مدیریت استفاده می‌شود؛ با این حال شی‌گرایی فقط کلاس نیست بلکه شامل تمام مدیریت‌هایی است که منجر به رسیدن به مفاهیم فوق می‌شود.

کلاسها در حالت کلی به شکل زیر نوشته می‌شوند:

class class_name : inheritance_list
{
private:
// private variables and functions
public:
// public variables and functions
protected:
// protected variables and functions
} name;  // Define object of class (optional)

قسمت private نشان دهنده بخش خصوصی کلاس است. داده‌ها و متدهای کلاس به طور پیش‌فرض خصوصی هستند؛ بنابراین اگر عمومی یا خصوصی بودن یک بخش ذکر نشود، آن بخش خصوصی در نظر گرفته خواهد شد. این بخش فقط توسط اعضای کلاس قابل دسترسی می‌باشد. قسمت public بخش عمومی کلاس است و علاوه بر اعضای کلاس، در خارج از آن نیز قابل دسترسی است. سعی برنامه‌نویس آن است تا می‌تواند متغیرها و متدها را به صورت اختصاصی تعریف کرده و از دسترسی‌های غیر لازم اجتناب نماید. این کار باعث می‌شود تا اشتباهات برنامه‌نویسی به حداقل برسد. بخش protected مانند اعضای خصوصی کلاس است؛ اما باعث می‌شود این اعضا توسط کلاسهای مشتق شده، قابل دسترسی باشد. اعضای خصوصی به وسیله کلاسهای مشتق شده قابل دسترسی نیست.

حالت کلی کلاس شامل دو قسمت دیگر هم هست. یکی inheritance_list که لیست کلاس‌های والد را در صورت وجود مشخص می‌کند و دیگری قسمت name که لیست اشیاء را نشان می‌دهد.