Let's assume your customers requirements are 25 PPM. That means that you would be allowed 25 pieces for every 1,000,000 pieces or 250 defective parts per year. Or to put it another way, one bad part per day! Notice I did not say one bad part per day per person or job, or shift or machine.
The dynamic inheritance allows you to follow open-closed principle by extending classes without modifying existing classes and allows you to choose features that you need at runtime. Of course, dynamic languages such as Ruby make this a lot easier as you can extend classes or objects with modules at runtime, e.g.
} int main() { MyClass c; start_thread(&func, &c) // func(&c) will be called .join(); } In this example, you know that you passed a MyClass object, and thus there isn't any need for a runtime check to ensure this. dynamic_cast dynamic_cast is useful when you don't know what the dynamic type of the object is.