Vererbung von Methoden



  • Hallo,

    Ich habe eine Frage zu folgenden Phänomen, welches ich mir nicht erklären kann.

    Ich habe eine Basisklasse:

    class BaseRecord
    {
    
    public:
    
      BaseRecord(const QString &recordName, const QString ownerName = QString::null, const QString &aliasPrefix = QString::null);
    
      ~BaseRecord();
    
      void dump();
      ........
    }
    

    und eine Subklasse:

    class TestAdress : public BaseRecord
    {
    
    public:
    
        TestAdress(const QString ownerName = QString::null, const QString &aliasPrefix = QString::null);
    
    };
    

    Wieso kann ich in der main.cpp die dump() Methode der Basisklasse nur dann aufrufen, wenn ich einen Pointer des Objekts TestAdress anspreche?

    Also folgendes lässt sich compilieren.

    int main(int argc, char** argv)
    {
        QCoreApplication app(argc, argv);
    
        TestAdress *adress = new TestAdress();
        adress->dump(); <-----OK
    }
    

    Folgendes geht nicht:

    int main(int argc, char** argv)
    {
        QCoreApplication app(argc, argv);
    
        TestAdress adress();
        adress.dump(); <----- Hier compile Error
    }
    

    Der Compiler sagt die Methode dump() sei unbekannt??

    MFG



  • TestAdress adress; //ohne die (), sonst isses ne Funktionsdeklaration
    


  • DANKE!

    Ich bin so ein depp 😡


Anmelden zum Antworten