Чистые виртуальные функции и неиспользуемые аргументы в дочерних функциях в C ++

У меня есть следующее:

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 в данном дочернем классе, чтобы не было аргументов, даже если родитель говорит, что они должны?

Большое спасибо.

5
задан ale 19 July 2011 в 20:37
поделиться