kennt keine member Variablen



  • Hallo liebe C++ Gemeinde,

    ich habe ein Problem und hoffe, dass hier mir jemand hilfen kann.

    Ich habe ein keine TestCklass geschieben:

    //test.h
    class Test
    {
    public:
        Test();
        ...
        void readAndStoreData();
        int getNr();
        ...
    private:
        int nr;
        ...
    };
    
    // test.cpp
    Test::Test()
    {
        nr = 0;
    }
    
    void Test::readAndStroeData()
    {
        // hier ist die Data von port gelesen und in memberVariable nr schreiben
        // zb:
        read ( fd, buffer, 1 );
        nr = (int)buffer[0];
    }
    
    int Test::getNr()
    {
        return nr;
    }
    
    // test main.cpp
    int  main()
    {
       Test t;
       t.getNr();
    
       return 0;
    }
    

    immer wenn ich kompliere bekomme ich folgende Fehlermeldungen:

    test.cpp. in funktion 'int getNr()'
    error: 'nr' was not declared in this scope

    Kann jemand mir sagen, wo das Problem liegt?

    gruss vor dem Komputer 😞 😞 😞



  • Erstaunlich, daß der Compiler nicht über die Namen 'fd' und 'buffer' in der readAndStoreData() gemeckert hat (oder wo sind die definiert?).

    (btw, ich hoffe, die unterschiedlichen Schreibweisen sind C&P-Fehler - und am Anfang der test.cpp sollte ein '#include "test.h"' stehen)



  • Hi,

    also Dein Fehler muss woanders liegen, denn das hier:

    class Test
    {
    public:
        Test();
        void readAndStoreData();
        int getNr();
    private:
        int nr;
    };
    
    // test.cpp
    Test::Test()
    {
        nr = 0;
    }
    
    void Test::readAndStoreData()
    {
        // hier ist die Data von port gelesen und in memberVariable nr schreiben
        // zb:
    //    read ( fd, buffer, 1 );
        nr = 3;
    }
    
    int Test::getNr()
    {
        return nr;
    }
    
    // test main.cpp
    int  main()
    {
       Test t;
       t.getNr();
    
       return 0;
    }
    

    kompiliert und läuft bei mir tadellos.

    Gruß,

    Simon2.



  • danke, du hast richt und ich habe fehler gefunden 👍 😋


Anmelden zum Antworten