ClientWeaponBase.h: this file just lines up and tells the engine what the different effects of a weapon are. In this file you find all the virtual voids that name WeaponState (is it reloading, is it shooting, is it idle?), ChangeAmmoWithReload (are you out of one ammo type but have some of another that matches the gun?), and handles messages from the server to client about the different base states of the weapon and everything to do with the base weapon.
ClientWeaponMgr.h: This file holds the main class for the weapon manager (just as it sounds from the name) on the client. things like CurrentWeaponID, hosteredID, Enable or disable weapons is described here. Is the weapon visible? Yes or no... that kind of thing
ClientWeapon.h: The purpose here is the actual client weapon. Which weapon do you have? What does it exactly do and why does it exist on client? Does it exist on server? just another class, the physical functions are in the CPP files.
Weapons.h: This houses the class for the physical weapons. things like "g_pWeaponMgr->IsValidWeaponId(nWeaponId);" or as that translates to "Is the weapon ID a valid weapon and found in the engine?" also found here are other basic class functions of "getWeapon" and isValidAmmoID sorts of things
All in all these files are what control the client side of the weapons on the game. Obviously (common sense should tell you this by READING FILE NAMES) that these files have to do with the CLIENT WEAPONS.
these files are just class objects that on a multiplayer based game, aren't going to do much for you
i may not know c++ well but i've built a few mini games and modded CA into a custom client with some help from others into games like TPS and CAPS... see example below