Hi,
I´m no expert in this, but I explain how I understand it:
an example:
on a PC there is a USB bus. So the user can connect a device to the USB.
Let´s do an example with an USB_Stick:
The SW developer creates one class for an USB stick that contains functions to read, write and so on , and it also allocates memory space for data chache, transfer buffers ....
So a soon as the user connects a stick ... during runtime .. the software calls for a new class USB_stick.
Now one can access to the USB stick.
But now the user connects a second USB stick. Thus the software calls the same (but another "new") class USB stick. Now one can access to both sticks independently.
But after some time the user disconnects the first USB stick. Thus the software closes the first class USB stick and releases the allocated memory.
So the benefit of the classes is, that one has to write one common class and the class can be activated many (copies) times and can be released randomly at run time. This saves code and data memory space.
In opposite:
Without the use of classes you have to write USB_Stick drivers and limit the number of USB sticks (maybe to 8) and the software needs to allocate fix data memory space for all 8 USB devices - independent whether they are used or not.
Again, I'm not 100% sure I got that right. Perhaps there is an expert who has more solid information.
Klaus