in that struct ignoring the fact that there are 3 more members that need to be changed to keep the struct in a "valid" state.
In c i do not use such approach you mention - as a c++ object as a shield interface for some "its internal state inconsistency" against weak users
(probably I used to evade internal states in such type modules at all. (I would be must think a little about that to explain the difference)
Do not have to fight with that because it does not seem to appear at all.Though I do not work in a team , I never handed a module/c-file to somebody and said use it such-and-such, so i do not know. But probably as I said I prefer the stateles modules (As speaking of some side-internal-state to spoil)
Also I do not use such alone object structures you mention:
I do not used just one of it - all my data practicaly are few big global tables of instances only - got initialisations but got no 'destruction' at all - when I need container for thousands of bullets which are of short living I use something like a pool of structures in the static array - its quite efficient and clear (though is staticaly limitted to some arbitrary limit - so it is some kind overflow prone)