This looks like a C++ type issue, where you don’t quite understand what your doing. I don’t program in C++ myself, but I can see what you have done, so forgive me if I don’t use the correct terms here.
Initially, you used the following:
GLfloat Light_Position= {0.0f, 1.0f, 3.5f, 1.0f};
which is to declare a variable array of type GLFloat which has a fixed length of 4. At the same time, C++ allows you to assign some initial values, so internally it’s using a constructor to assign those.
Now, later on
you have attempted to do the exact same thing - which is not allowed. You can’t call a constructor twice on the same variable. So instead of that you just need to call one of the operators which could be as simple as:
light_Position.x=tVector3.x;
light_Position.y=tVector3.y;
light_Position.z=tVector3.z;
There is more than likely another wasy to do the above in a single line, but as I said I’ll leave that to someone else.