What are Altitude, Attitude and Heading Hold?
These are generally 3 different auto pilot modes. The first two are related to pitch and the third to heading/roll a nice overview can be found here 

Altitude Hold: Generally speaking setting an autopilot to altitude hold will cause the autopilot to maintain that altitude by varying the pitch of the aircraft. Depending on the system it may attempt to maintain the altitude even its not possible which can lead to a dangerous situation.  

Attitude Hold: Is the autopilot setting that will hold the pitch of the aircraft constant when set to this mode. For example if you depart and climb out at an 8 degree nose up attitude, engage attitude hold, the aircraft will hold 8 degrees nose up until set otherwise or shut off. As noted in the comments this can create a very dangerous situation as the aircraft may continue to maintain pitch (generally for a climb) even if power does not allow this can cause a stall at high altitude. More sophisticated auto pilots allow for constant airspeed climbs which are far safer. 

In my experience you are generally in either altitude or attitude mode at any given time. 

Heading Hold: This is a roll control mode that holds the heading of the aircraft (keeps it on track). It will typically be slaved to a bug on the HSI where you can set the heading the autopilot flies.