Hi, I've got a class design problem. Well, actually it's not a big problem. I can somewhat make the class but I don't quite confidence that what I built was a good OOP practice.

I have two class for two different object. They have an integer as state. If one object changes the state, the other changed too. Here's what I've done:

Code:
class A
{
private:
  int mState;
public:
  inline void changeState(int state)
  {
     mState=state;
  }
};


class B
{
private:
  int mState;
public:
  inline void changeState(int state)
  {
     mState=state;
  }
};


class C
{
private:
  A mA;
  B mB;

public:
  void changeStateA(int state);
  void changeStateB(int state);
};

void C::changeStateA(int state);
{
     mA(state);
     switch(state)
     {
         1:
         4:
             mB(1);
             break;
         2:
         5:
             mB(1);
             break;
         3:
         6:
             mB(1);
             break;
     }
}


void C::changeStateB(int state);
{
     mB(state);
     mA(state);
}
And in the main class, I referenced the C class. Is it okay to do that? Is my code a good practice? Or is there any other better way to do that?

Thanks in advance.