Just use the
--include parameter, like this:
grep -inr --include \*.h --include \*.cpp CP_Image ~/path | mailx -s GREP email@example.com
That should do what you want.
To take the explanation from HoldOffHunger’s answer below:
-n: each output line is preceded by its relative line number in the file
--include \*.cpp: all *.cpp: C++ files (escape with \ just in case you have a directory with asterisks in the filenames)
./: Start at current directory.