Please see my comments to the question.
Just to give you and idea. Static methods are like old non-class methods, only have access to class (other class members), but instance members has hidden parameter "this". So, in such methods, you can write something like:
this->myField = myMethodParameter;
This will modify the instance's field
using the method parameter, or anything else, say, some other field.
Please see my past answer: Catch 22 - Pointers to interface objects die when function using them is made static.
You see, I just respond only to your question of the title, as in Solution 1. That solution is basically correct but incomplete. You speculations about "re-creation" are completely unclear; I suspect they are based on some misconception, but I cannot figure out what exactly, sorry.—SA