gcc-Woverloaded-virtual-Warnungen

Den folgenden C++ - code, den ich denke, ist richtig, aber produzieren einige Warnungen bei der Kompilierung mit "-Woverloaded-virtual" ist die Warnung falsch oder es gibt ein echtes problem mit diesem code?

Wenn, dass ist eine gefälschte Warnung, was kann ich tun um es zu vermeiden, definieren Sie die Ausnahme virtuellen Varianten abgeleitet get befreit von der Warnung, aber vielleicht ist eine bessere Lösung

G++ - Befehl:

   g++ -c -Woverloaded-virtual test.cpp 
test.cpp:22:18: warning: virtual void intermediate::exception(const char*)’ was hidden [-Woverloaded-virtual]
test.cpp:32:18: warning:   by virtual void derived::exception()’ [-Woverloaded-virtual]

C++ - code

using namespace std;

class base
{
public:

    virtual void exception() = 0;
    virtual void exception(const char*) = 0;
};

class intermediate : public base
{
public:

    virtual void exception()
    {
    cerr << "unknown exception" << endl;
    }

    virtual void exception(const char* msg)
    {
    cerr << "exception: " << msg << endl;
    }
};

class derived : public intermediate
{
public:

    virtual void exception() 
    { 
        intermediate::exception("derived:unknown exception");
    }
};
InformationsquelleAutor José | 2012-04-03
Schreibe einen Kommentar