STL list mit eigener klasse ????ß



  • Hey leude ,
    ich hab folgendes problem:

    ich will : Eine klasse MUmodul erstellen, die eine STL-Liste enthält, die als elemente

    objekte der klasse MUmodulUSER enthält. Aber ich muss die möglichkeit haben die

    Objekte der Klasse MUmodulUSER dynamisch zu kreieren.

    So, hier mein Code:

    //----------------------------------------------------------------------------

    MUmodul.h:

    #pragma once
    #include "ini2.h"
    #include "MUmodulUSER.h"
    #include <list> // list class library
    using namespace std;

    class MUmodul
    {
    public:
    MUmodul(void);
    ~MUmodul(void);
    void AddUser(CString Login,CString Pw,CString Path,int AccLevel);
    MUmodulUSER* GetUserByLogin(CString Login); //Gibt ein Objekt des gefundenen Users zurück

    private:

    list<MUmodulUSER*> *userlist;

    };

    //----------------------------------------------------------------------------

    MUmodul.cpp:

    #include "StdAfx.h"
    #include "MUmodul.h"
    #include <list>
    #include <stdlib.h>
    using namespace std;

    #ifdef DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE
    _;
    #endif

    MUmodul::MUmodul(void)
    {
    list<MUmodulUSER*> *userlist = new list<MUmodulUSER*>;

    CIni MUmodulINI(_T("MUmodul.ini"),_T("User1"));

    userlist->push_front( new MUmodulUSER( MUmodulINI.GetString(_T("login")),MUmodulINI.GetString(_T("pw")),MUmodulINI.GetString(_T("filepath")),MUmodulINI.GetInt(_T("accesslevel"))) );
    }

    MUmodul::~MUmodul(void)
    {
    }

    void MUmodul::AddUser(CString Login,CString Pw,CString Path,int AccLevel)
    {

    }

    MUmodulUSER* MUmodul::GetUserByLogin(CString Login)
    {
    list<MUmodulUSER*>::iterator *iter;

    // iter->

    return NULL;

    }

    //----------------------------------------------------------------------------

    DAS PROBLEM IST: ICH KANN MIT DEM ITERATOR "ITER" nicht auf mein Objekt in der liste zugreifen. bei der code vervollständigung kann ich nur auf :

    iter->difference_type
    iter->iterator
    iter->iterator_category
    iter->operator *
    iter->operator ++
    iter->operator --
    iter->operator ->
    iter->pointer
    iter->value_type
    iter->reference

    zugreifen. und ich will ja an mein objekt ran . HILFE

    //----------------------------------------------------------------------------

    MUmodulUSER.h:

    #pragma once

    class MUmodulUSER
    {
    public:
    MUmodulUSER(CString Login,CString Pw,CString Path,int AccLevel);
    MUmodulUSER(void);
    ~MUmodulUSER(void);
    CString login;
    CString pw;
    CString path;
    int accLevel;

    };

    //----------------------------------------------------------------------------

    MUmodulUSER.cpp

    #include "StdAfx.h"
    #include "mumoduluser.h"

    #ifdef DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE
    _;
    #endif

    MUmodulUSER::MUmodulUSER(CString Login,CString Pw,CString Path,int AccLevel)
    {
    login=Login;
    pw=Pw;
    path=Path;
    accLevel=AccLevel;

    }

    MUmodulUSER::~MUmodulUSER(void)
    {
    }

    MUmodulUSER::MUmodulUSER(void)
    {

    }

    //--------------------------------------------------------------------------------



  • Habs nur kurz überflogen... Ein Iterator ist fast wie ein Pointer. Du kannst ihn Dereferenzieren mit dem *-Operator, dann hast du das Objekt selbst oder du verwendest den -> Operator um auf einzelne Methoden oder Member zuzugreifen.


Anmelden zum Antworten