-These are some rules for effective C++ programming. These are taken from
-Scott Meyers, and is presented in their short form. These are not all the
-rules Meyers presents, only the most important of them. LyX does not yet
+These are some rules for effective C++ programming. These are taken from
+Scott Meyers, and are presented in their short form. These are not all the
+rules Meyers presents, only the most important of them. LyX does not yet
follow these rules, but they should be the goal.
- Use const and inline instead of #define
- Use the same form in corresponding calls to new and delete,
i.e. write delete[] obj; if new obj[n]; was used to create
the object and write delete obj; if you wrote new obj;
- Notice strings should be LString's instead of char *'s.
+ Notice strings should be std::string's instead of char *'s.
-- Define a copy constructor and an assignment operator for all
- classes with dynamically allocated memory.
+- Define a default constructor, copy constructor and an assignment
+ operator for all classes with dynamically allocated memory that
+ do not inherit noncopyable
-- make destructors virtual in base classes.
+- make destructors virtual in base classes and only there.
- assign to all data members in operator=.
- ensure that global objects are initialized before they are used.
+- avoid conditions to 'if' and 'while' that span more than a line
+
--------
-S. Meyers. Effective C++, 50 Specific Ways to Improve Your Programs and
+S. Meyers. Effective C++, 50 Specific Ways to Improve Your Programs and
Design. Addison-Wesley, 1992
==================================
-And one of mine: (Lgb)
+And one of mine: (Lgb)
- When swiching on enums, refrain from using "default:" if possible.
+And one of mine: (Andre')
+
+- try to implement your class in a way that the automatically generated
+ copy constructor and copy assignment work out-of-the box.
+