Thank you very much for the help.
Yes I missed Copier (1,2,3) while copying the whole code.

But in the first post with the keyword "virtual" there is not normal inheritance since the first object which is created is PoweredDevice. Then the constructors of Printer and Scanner are ignored, and there is not duplicate creation of PoweredDevice.