У меня есть следующее:
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 принимает два векторных аргумента. Ребенок реализует это правильно с двумя строковыми аргументами, но они не используются. ОДНАКО, некоторые дети Родителя БУДУТ использовать эти аргументы, поэтому они должны всегда быть там.
Можно ли как-нибудь использовать перегрузку, чтобы позволить foo в данном классе Child не иметь аргументов, даже если родитель говорит, что должен?
Большое спасибо.