From C language development to C ++ development, the technical staff did not expect that the significant improvement in code quality can only be changed in the programming style, for the C ++ compatibility problem, A variable or function cannot be used before it is declared.
Every step of C ++'s evolution and development must be caused by actual problems. C ++ is a language rather than a complete system. It is impossible to Pursue Perfection Endlessly; C ++ must be useful in the period of its existence "at the time;
Each language must have a well-established and clear implementation scheme. A flexible method can always be provided; it can provide easy-to-understand support methods for each programming style to be supported; it is not mandatory for people. It can be noted that the last three elements of the basic rule imply two points:
Emphasize convenient tools applicable to various applications in the real world, and fully consider the technical and orientation preferences of programmers. From the very beginning, C ++ is intended for programmers who want to build real projects. The so-called "perfection" is considered impossible.
This is because the requirements, background, and issues to be resolved of C ++ users are too different. Moreover, even the interpretation of the word "perfect" may be greatly changed throughout the lifetime of a general-purpose programming language. It can be seen that in the process of language evolution, user feedback and experience accumulated by language practitioners are the most important.
Support good design solutions; provide language facilities for program organizations; Say what you mean); all language features must be effective; enabling a useful feature is more important than avoiding all misuse;
It can combine independently developed components into complete software. One of the goals of C ++ is to provide more easy-to-use and affordable design ideas and program design technologies to further improve the quality of the program. Most of these technologies are derived from Simula [Dahl, 1970] [Dahl, 1972] [Birtwistle, 1979] and are generally discussed as Object-Oriented Programming and object-oriented design ideas.
However, the goal of C ++ is to support various programming styles and ideas within a certain range. This is a comparison with general views on language design. Generally, in terms of language design, it is always an attempt to build all the systems in a separately highlighted, mandatory programming style or a model paradigm ).
There is no internal conflict with the Static type system (Static type system). Like the built-in built-in) type, it provides good support for user-defined types. locality) behavior is desirable; avoid dependency in order; when you are confused about the language, you can select the easiest part of its features;
Of course, these rules should be specifically combined