У меня есть следующее:
class Parent {
public:
virtual bool foo(vector<string> arg1, vector<string> arg2) = 0;
};
class Child : public Parent {
public:
bool foo(vector<string> arg1, vector<string> arg2);
};
// arg1 and arg2 not used - GIVES WARNING
bool Child::foo(vector<string> arg1, vector<string> arg2) {
return false;
}
Не существует родительской реализации foo (...), потому что это чистая виртуальная функция. Родитель говорит, что foo принимает два векторные аргументы. Дочерний элемент реализует его правильно с двумя строковыми аргументами, но они не используются. ОДНАКО, некоторые дочерние элементы Parent БУДУТ использовать эти аргументы, поэтому они должны всегда присутствовать.
Могу ли я использовать перегрузку, чтобы разрешить foo в данном дочернем классе, чтобы не было аргументов, даже если родитель говорит, что они должны?
Большое спасибо.