C++

以下のようなコードを書きたいんですが、

//クラス定義
class myclass {
public:
  int z;
  void (*func)(int x);
};

//クラスと関係ない変数
int myint1, myint2;

// funcの行き先
void myclass::sub1(int x)
{ z=x + myint1; }

void myclass::sub2(int x)
{ z=x + myint2; }

int main(){
 myclass a,b;
 a.func = sub1;
 b.func = sub2;
}

sub1, sub2 は myclass のメンバじゃないと怒られます。でも myint はクラスと関係ないんでこれはクラスに入れたくないんです。こういうのは出来ない仕様つーことですかね。 void sub1(int x, myclass *c) などとして a.func(x, &a) などとするしかないのかな。