The best way to improve these skills is reading books and articles, but I can help you with some tips:
- 1- Accept Objects by reference and Primitive or Pointer Types by value but use object pointer if a function stores a reference or a pointer to the object.
- 2- Don't use MACROS to declare constants -> use static const.
- 3- Always implement a virtual destructor if your class may be subclassed.