Classes include HID (human interface device)- which can be mouse, keyboard, pointer, button keypad, or many other things and might be a little easier to implement, Mass storage - flash or disk drives, Display controller, Communication controller, Multimedia Device, Network controller, Docking stations, and more. Methods of connecting and transporting data are the isochronous, bulk, control, etc. If your device will comply with the defined class for a common device according to the spec, then it may work with the standard Windows/Linux device drivers. But if it does not, then you have to write your own device drivers for it on the windows or linux or Mac side as well.
USB interfacing is a very large and complex topic - you need to study up on it and review the documentation available on the internet for some time (days) to understand what it is you want to do. Also, consult the forum and look for books by Jan Axelson which I indicated earlier.