یکی از قدرتمند و معروف ترین بسته های نرم افزاری مخصوص برنامه نویسی،visual studio است که از جانب شرکت مایکروسافت عرضه شده است و فعالانه به روز رسانی و پشتیبانی می شود.

در این بسته نرم افزاری ابزارها و کامپایلرهای مختلفی به صورت یکجا عرضه شده اند که البته هر کدام می توانند به صورت جداگانه نصب شده و مورد استفاده قرار گیرند. یکی از گزینه های موجود در این بسته نرم افزاری++ visual c است.

ویژوال++ c یک ide پر توان برای زبان++ c است که امکانات گرافیکی و بصری به زبان c++ می دهد و به این ترتیب آن را به یک زبان ویژوال تبدیل می کند.با استفاده از این امکان می توان بسیاری از اجزای گرافیکی از قبیل منوها، دکمه ها، کادرهای مکالمه و... را همچون بسیاری از زبان های ویژوال دیگر به برنامه اضافه کرد. ابزار مشابه و قدرتمند دیگر c++ builder است که ازجانب شرکت borland عرضه شده است.

این محصول از نظر تجاری رقیب ++visual c مایکروسافت است و از نظر توانایی ها و امکانات هر یک نسبت به دیگری برتری هایی دارند که در مجموع آن دو را به عنوان رقیب مطرح می کند. می توان گفت که اکثر قریب به اتفاق برنامه هایی که امروزه به زبان++ c نوشته می شوند با یکی از دو کامپایلر نام برده شده کامپایل می شوند و امروزه کمتر کسی است که بدون داشتن دلیل خاصی، برای نوشتن برنامه های معمولی به زبان c++، از کامپایلر دیگری غیر از کامپایلر این دو شرکت استفاده کند.این دو بسته نرم افزاری، علاوه بر این که تمامی امکانات زبان را در اختیار برنامه نویس قرار می دهند، برای وی شرایطی فراهم می آورند که طراحی محیط برنامه و واسط گرافیکی، برنامه نویسی و اشکال زدایی برنامه را به میزان زیادی ساده می سازند. وجه تمایز این کامپایلرها با سایر کامپایلرهای زبان++ c یکی در سرعتکامپایل و نیز ساخت برنامه های پرسرعت است و دیگری انجام عمل بهینه سازی که برنامه است. برتری این ابزارها نسبت به سایر ابزارها نیز در جامعیت کتابخانه ها و توانمندی ide آنهاست.

منظور از کتابخانه، توابع و قطعه برنامه هایی است که به صورت آماده و از پیش نوشته شده به همراه ابزار عرضه می شود تا برنامه نویس مجبور نباشد هر برنامه ای را که می خواهد، شخصا تمام قطعه های آن را بنویسد. به عنوان مثال لزومی ندارد که برنامه نویس به هنگام نوشتن برنامه تابع محاسبه مساحت دایره یا رسم استوانه را شخصا بنویسد.

بنابراین خوب است کتابخانه ای باشد که این توابع در آن موجود باشد و برنامه نویس تنها در زمان نیاز آنها را درون برنامه خود فراخوانی کند