C++ is the most popular language and will be used for a long time in the future inspite of emergence of Java. C++ runs extremely fast and is in fact 20 to 30 times FASTER than Java. Java runs very slow because it is interpreted language. The memory management in Java is automated and this document attempts to automate the memory management in C++.
Also debugging C++ programs consumes a major portion of time while developing a software project. The information in this document will give you some better ideas and tips to reduce the debugging time.
Since C++ is super-set of C, it got all the bad features of "C" language.
For example, in "C" memory leaks, memory overflows are very common due to usage of features like -
datatype char * and char[] functions like strcpy, strcat, strncpy, strncat etc..
The usage of char * and strcpy causes horrible memory problems due to "overflow", "fence past errors" or "memory leaks". The memory problems are extremely hard to debug and are very time consuming to fix and trouble-shoot. Memory problems bring down the productivity of programmers. This document helps in increasing the productivity of programmers via different methods addressed to solve the memory defects in "C++". Memory related bugs are very tough to crack, and even experienced programmers take several days or weeks to debug memory related problems.
Hence, the following techniques are proposed to overcome the faults of "C" language.
It is proposed that C++ compilers should prevent the programmers from using the "char *", "char[]" datatypes and functions like strcpy, strcat, strncpy, strncat. The datatypes like char *, char[] and functions like strcpy, strcat are evil and must be completetly BANNED from usage!!
Instead of using char * and char[] all the C++ programmers MUST use the mychar class which is given in this document. The mychar class utilises the constructor and destructor to automate the memory management and also provides many functions like ltrim, substring, etc..
See also related 'string class' in the compiler. The string class is part of the standard GNU C++ library and provides lot of string manipulation functions. Also, programmers must be encouraged to use 'new', 'delete' features instead of using 'malloc' or 'free'.
The mychar class does everything that char * or char [] does. It can completely replace char datatype. Plus added benefit is that programmers do not have to worry about the memory problems and memory allocation at all!!
The GNU C++ compiler MUST drop off the support of char *, char[] datatypes and in order to compile older programs using char datatype, the compiler should provide a additional option called "-fchar-datatype" to g++ command. Over the next 2 years all the C++ programs will use mychar and string class and there will be no char * and char[]. The compiler should try to prevent bad programming practices!