Learn how to avoid unnecessary constructors/destructors calls and how to fix the slicing problem by passing-by-reference-to-const instead of passing-by-value.
If you are developing a library, engine, etc, you need to make sure that your users won't use your API interface incorrectly by making it HARD to use it incorrectly.