仮想関数について質問です、

class A {
public:
virtual int foo(int a);
}

class B:public A {
public:
virtual int foo(int a,int b);
};

のように、仮想関数の
引数の違うオーバーライドって、オブジェクト指向設計上問題あるのでしょうか?
どうしても、使いたいときがあるので気になっています。
使いたいときがあること自体問題あるのでしょうか?