Modulli dasturlash Dastur hajmining oshishi bilan xotirada barcha tafsilotlarni saqlab qolishning imkoni yo'q. Ixtiyoriy masalaning murakkabligi bilan kurashishning tabiiy usuli uni qismlarga ajratish hisoblanadi. C++ da masala oddiyroq va funksiyalar bilan ko'rinadigan qismlarga ajratiladi, shundan sung dasturni yiriklashgan ko'rinishda – funksiyalar o'zaro ta'siri saviyasida qarash mumkin. Bu muhim, chunki inson chekli sondagi faktlarni eslab qolishga qodir. Funksiyalardan foydalanish dastur abstraksiya darajasini oshirishdagi birinchi qadam bo'lib hisoblanadi va uning tuzilishi soddalashishiga olib keladi.
Dasturni funksiyalarga ajratish kodning ortiqchaligidan qutilishga imkon beradi,chunki funksiya bir marta yoziladi, uni bajarish uchun dasturning har xil nuqtalaridan ko'p martalab chaqiriladi. Funksiyani o'z ichiga oluvchi dasturni sozlash jarayoni yaxshiroq strukturalash mumkin. Ko'p foydalaniladigan funksiyalarni kutubxonaga joylashtirish mumkin. Shunday qilib, sozlashda va hamkorlik qilishda oddiyroq bo'lgan dasturlar yaratiladi.
Dasturning abstraksiya saviyasini oshirishda navbatdagi qadam funksiyalarni alohida komplirlanuvchi u bilan bog'liq alohida fayllarni guruhlash hisoblanadi. Komplyatsiya natijasida olingan obyekt modullar komponovshik yordamida bajariladigan dasturga birlashtiriladi. Modullarga ajratish qayta komplyatsiya vaqtini kamaytiradi va modul interfeys orqasida muhim bo'lmagan detallarni yashirib va qismlar bo'yicha dasturni sozlashga imkon berib sozlash jarayonini osonlashtiradi.
Modul ma'lumotlarni va ularni qayta ishlash funksiyalarni o'z ichiga oladi. Boshqa modullarga bu ma'lumotlar qayta ishlash xos vositalarga ega bo'lishi maqsadga muvofiq emas, ular buning uchun birinchi modul funksiyalaridan foydalanishi lozim. Moduldan foydalanish uchun faqat uning interfeysini bilish lozim, uni amalga oshirish barcha detallarini bilish shart emas. Modullar qancha bog'liq bo'lmasa, shuncha dasturni sozlash oson bo'ladi. Bu sozlashda bir vaqtda eslab qolish zarur bo'lgan axborot hajmini kamaytiradi. Dasturni maksimal ajratilgan qismlarga ajratish dasturni loyihalash bosqichida yechilishi lozim bo'lgan murakkab masala hisoblanadi.
Amalga oshirish detallarni yashirish inkapsulyatsiya deb ataladi. Inkapsulyatsiya strukturali dasturlashning ham, obyektli-yo'naltirilgan dasturlashning ham tayanch g’oyasi hisoblanadi. Inkapsulyatsiyaga misol – kod parchasini funksiyaga joylashtirish va unga zarur barcha ma'lumotlarni parametrlar sifatida uzatish. Bunday funksiyadan foydalanish uchun faqat sarlavha bilan aniqlanadigan uning interfeysini bilish talab etiladi (nomi, qaytariluvchi qiymat tipi va parametrlar tiplari). Modul interfeysi barcha funksiyalar sarlavhalari va tashqaridan kirish mumkin bo'lgan tiplar, o'zgaruvchilar va konstantalar tavsiflari hisoblanadi. Dasturning barcha modullarda global dasturiy pbyektlar tavsifidan muvofiqlashtirilishi lozim.
C++ tilde modullik preprosessor deriktivalari, nomlar fazosi, xotira sinflari, chetga chiqishlar va alohida kompilyatsiya yordamida qo'llab quvvatlanadi (qat'iy aytganda, alohida kompilyatsiya tili elementi hisoblanmaydi, uni amalga oshirishga taaluqli).