hey thanks all,
i got it to work but by declaring f_x in X like any other member function, it seems to work fine. which makes me think that this is not what my book calls composition. the book's example delt with data members, not functions, and also gave this odd constructor syntax:
if anyone can explain what the deal is with that constructor, i'd appreciate it. it came from pg 462, deitel & deitel 3rd ed.
X::x (int a, int b, int c)
:yData1_ofclass_x (int a, intb, int c)
:yData2_ofclass_x (int a, int b, int c)
// . . .
thanks again guys