Do I need a subdivision modifier to create a hard-surfaced object I'm currently in the process of modelling a handgun, this is one of the reference images that I am using: 

Looking at it closely, it looks as if a majority of the edges have a small bevel on them to give a hard surface look to it. I have modelled the basic shapes and details of the weapon, and now I need to make it look like a hard surfaced model. I also have a subdiv surface on the model (currently set to 4, going to make a very high poly version and then bake the details to a normal map for a lower poly model).

My question being, is having the subsurf modifier necessary for a model like this? I intend to go through and add all of the little bevels to the model to represent the same sort of look in the reference image, but I'm just not sure whether the subsurf is even necessary? 

I have seen other models without subsurfs, yet they have a hard surface look to them. 

For point of reference, this is what I have so far: 

To try and summarise/clarify what I'm asking, is it necessary for me to use a subsurf modifier and then go through and bevel edges to create a hard surface look? Or can I achieve the desired look without using bevels and a subsurf modifier?



Also, in the .blend file, if you look at the barrel and the trigger that is the sort of method I was going to use to achieve a hard surface model. Not sure whether it is a very effective and or correct way of doing it. 

Thanks.

note I’m not planing on using this for a game, I am baking the detail for a normal map so that when I use it for renders it isn’t super high poly.
This is really a subjective topic and I don't think it can be answered with 100% certainty for you. Some high-level modelers will use sub-d's on a model like this, while others will not; it just depends on the the person and not necessarily the model, although the model itself is a factor.

You also have to consider how the model is going to be used: Is it going to be for a game or animated in some way? Will it have a UV map? Just a still image? If so, how big will the image be and how long are you willing to wait for it to render? A sub-d model will render better generally, but will take longer. All these things must be taken into account.

One thing to note: When you say "hard surface" that doesn't exclude a model with subdivision surfaces on it, and you can have organic models with no subdivision at all -- it just depends on what you are trying to achieve. Just understand that it will be more difficult to get smooth, rounded areas without some level of subdivision.

You'll just have to try it both ways (or a combination of both) and find out what works best for you. There's no rule that says you have to only do things one way. That's the best answer I can give you.