C++ emerged in the 1980s as an object-oriented extension of the C programming language. Object orientation made code easier to reuse and solutions became easier to segment so that multiple programmers can work simultaneously on projects. Visual C++, developed by Microsoft, takes the C++ language and adds a Windows-based Integrated Development Environment (IDE) and a set of classes, called Microsoft Foundation Classes (MFC), which allow C++ developers to manipulate elements in the Windows operating system.
C++ grew out of the C language, which in turn was a descendant of an extended B language, developed at Bell laboratories in 1971. C, restructured and with a stronger compiler, became the dominant language in the Unix development world. Ninety percent of Unix was written in C. In 1985, Bjarne Soustrup rewrote the C language, creating C++, to introduce object-oriented concepts that had been explored in other languages. In the 1990s, Microsoft became involved, developing first the Microsoft C/C++ compiler, followed by various versions of Visual C++.
While procedural languages organize code as a list of tasks to be carried out by the processor in a particular order, object-oriented languages like C++ organize code into distinct objects, each having its own properties and methods. One advantage of object-oriented programming is that it allows code that can describe real world objects. A BankAccount object, for instance, could have properties of "Balance" and "AccountHolder" and could include methods of "Deposit" and "Withdraw."
Microsoft Foundation Classes
The Microsoft Foundation Classes are at the center of Visual C++ programming for Windows. The MFC is a group of objects and methods that allow the programmer to manipulate the Windows environment (opening and closing windows, drawing content within windows, creating menus) and to react to a Windows user's input (mouse clicks, mouse movement, key presses, menu selections). Because most of Windows programming is centered around reaction to user inputs through the Windows user interface, it is said to be "event-driven." Much of the MFC simply gives programmers ways of hooking in to Windows-initiated events.
The Integrated Development Environment
C++, like most other programming languages, can be written out as text in a simple text editor. The text can then be "compiled" (turned into binary code) by a command-line initiated process. The introduction of Integrated Development Environments allows developers to navigate their code much more efficiently through menus that will take them to specific objects and methods. Other features of the Visual C++ and Visual Studio development environments include auto complete, which aids in typing code, visual design, which allow graphical elements of a program to be generated through drag and drop, and test suites for testing processes within an application.
C++ Versus other Languages
Programmers often debate what the best language and tools are for a given project and task. Compared to other object-oriented languages such as Java, C#, objective C or Python, C++ is usually considered the most difficult to learn and time-consuming to code, but will, in the right hands, result in the best performing application. Such claims, however, are often disputed.
- Photo Credit computer image by michele goglio from Fotolia.com
History of Teaching Aids
Teaching aids illustrate key points in lessons and rouse students' interests. The use of teaching aids dates back to as early as...
How to Start Learning Objective C on Windows
Objective C is an extension of the C programming language specific to the Mac OS family of operating systems. Developers use Objective...
How to Remove Microsoft Visual C Runtime Library
The Microsoft Visual C++ Runtime Library includes a set of library files that applications depend on if they are developed with that...
How to Make a New Window in VBNet
Making a new window in VBNet won't take more than a few quick moments of your time. Learn how to make a...
What Is C Programming?
C programming language is a powerful programming language that has been extended and modified over the years, and it requires an individual...