1 These are some rules for effective C++ programming. These are taken from
2 Scott Meyers, and is presented in their short form. These are not all the
3 rules Meyers presents, only the most important of them. LyX does not yet
4 follow these rules, but they should be the goal.
6 - Use const and inline instead of #define
8 - Use the same form in corresponding calls to new and delete,
9 i.e. write delete[] obj; if new obj[n]; was used to create
10 the object and write delete obj; if you wrote new obj;
11 Notice strings should be std::string's instead of char *'s.
13 - Define a default constructor, copy constructor and an assignment
14 operator for all classes with dynamically allocated memory.
16 - make destructors virtual in base classes.
18 - assign to all data members in operator=.
20 - strive for class interfaces that are complete and minimal
22 - differentiate among member functions, global functions and friend
25 - avoid data members in the public interface.
27 - use const whenever possible
29 - pass and return objects by reference instead of by value
31 - choose carefully between function overloading and
34 - never return a reference to a local object or a dereferenced
35 pointer initialized by new within the function.
37 - use enums for integral constants.
39 - minimize compilation dependencies between files.
41 - pay attention to compiler warnings
43 - differentiate between inheritance of interface and
44 inheritance of implementation.
46 - differentiate between inheritance and templates
48 - know what functions C++ silently writes and calls.
50 - ensure that global objects are initialized before they are used.
54 S. Meyers. Effective C++, 50 Specific Ways to Improve Your Programs and
55 Design. Addison-Wesley, 1992
57 ==================================
59 And one of mine: (Lgb)
61 - When swiching on enums, refrain from using "default:" if possible.