Camera animation with local curves
You could use the Follow Path constraint to do it the way you want.

Here is the procedure:


First, create a Bezier Curve, and place it along the object's local Z axis (in your exemple, the Cube).
Next, reset the camera position (ALT G)
Then add a Follow Path constraint to the camera, select the "BezierCurve" for the Target, and tick Follow Curve, as well as Fixed Position. Choose -Z "Forward axis" and Y for "Up axis".
Finally, parent the curve to the object.




The camera is now dependant of the position and rotation of the object (the cube), but you keep the ability to rotate the camera freely, while the animation curve is a single control: the Offset setting in the Follow Path constraint panel of the camera.

And, even better, when you reset the rotation of the camera, it should always points towards the object!

Here is the result: