Explore safe and effective C++ class design in this comprehensive conference talk. Learn about the Rule of Zero, Rule of Five, and Rule of Six, and understand when to apply or deviate from these principles. Discover the implications of move semantics, noexcept, and constexpr introduced in C++11 and later versions. Examine the pros and cons of using virtual member functions, final keyword, and class hierarchies. Gain insights into creating value classes, handling primitive types, and dealing with integral promotions. Investigate various class types, including regular, empty, and polymorphic classes, as well as adapters and iterators. Understand the complexities of inheritance and receive guidance on navigating expert territory in C++ programming. Acquire practical tips for writing safer, more maintainable C++ code in both application-level and safety-critical systems.