of the perceived problems in C is the lack of support for object oriented features that are so common on the development of desktopapplications. For example, C lacks the concept of a typethat encapsulates code and data. While it is possible to program in an object oriented style in C, it is
programmers. Inheritance was one of them, used to support object oriented features. Overriddenmethods were also added to improve object oriented programs.
overloaded, so that manymath operations, and evenpunctuation such as “,” can be overloaded by programmers. Normal functions can also be overloaded, by providing versions that differ on the number and type of arguments.
class based on one or more types. This allows for thecreation of containers, such as the ones found in the STL. Vectors, maps, and multimaps can all becreated by adding a type as a parameter for template instantiation
these features have a cost. It becomes increasinglydifficult to understand what is going on in each line ofcode, unless the developers are very disciplined.
While C++ has some features that might be helpful, in general thebigger the C++ code base the harder it is to understand due to these issues.
perform refactoring). In comparison, C is mucheasier to understand, andone can do a lot with tools such as ctags. It is not a surprise that large scaleprojects such as the Linux kernel use C without any problem.