Having various problems with rotating things over time without gimbal lock, in c++

with quaternians you need to add a new quaternian to an existing one and not set them directly. so you use the functions provided by the engine which will take care of the math with out you caring about. the math is already there no need to reinvent higher level mathematics