It can read velocity's value, but I can't seem to change it from within the method. I tried directly changing the value (in the update method) and I tried passing in a value through the setVelocity method. I didn't get any errors, but the code doesn't seem to do anything. How can I change its value?
I don't think that that is relevant, but the update method will modify velocity from both the object it is called on and the object passed in by the parameter.
By changing, you mean through the Object::update(Object) method? Because your Object::setVelosity(vector<double>) method works. However, even though it works, you are passing something that is not a base type and can be expensive as you are passing by value (i.e. the vector<double> is being copied). You probably want to pass by a const reference instead.
As for the update() function, you are again passing by value. The object passed will be copied and any operations done to it will be discarded at the end of the function scope. If you want the results to be seen from the caller's side, you have to pass it as a reference.