> File.seekg ( (advancedclient.getID()-1)*sizeof (baseclass));
If you use the size of the object rather than the size of it's type, there's less chance of such mis-match problems.
File.seekg ( (advancedclient.getID()-1)*sizeof (advancedclient));

If the type of the object changes for some reason, then this part of the code will adapt automatically.