Frage zu Forwards



  • Hallo,

    ich habe hier einen "Zirkelbezug".

    Ich schreibe eine Klasse für Emails (Visual Studio 2008 Standard).
    Eine Email besteht aus einem Header und einem Body.
    Dieser Body kann nun wieder aus verschiedenen Elementen bestehen die quasi auch wieder Emails sind (MIME) und Header und Body haben.

    struct EmailMIMEPart
    {
    	CString		m_Name;
    	Email		m_Email;
    };
    typedef CList <EmailMIMEPart, EmailMIMEPart> EmailMIMEPartList;
    
    class Email
    {
    public:
    	Email();
    
    private:
    	CString					m_Header;
    	CString					m_Body;
    	EmailMIMEPartList		m_MimePartList;
    }
    

    Das geht natürlich so nicht. Ich bekomme das mit dem Forward aber leider nicht hin. Kann mir bitte Jemand helfen?

    Vielen Danke

    Stefan



  • Hallo Stefan,

    Um das Problem zu lösen, müsstest du vor der Definition der Struktur
    EmailMIMEPart die Klasse Email bekanntmachen. Das könnte dann so aussehen:

    class Email;
    
    struct EmailMIMEPart
    {
        CString        m_Name;
        Email          *m_Email;
    };
    

    Beachte, dass die Struktur nur einen Zeiger auf Email enthalten kann, da die Größe von der Klasse Email zum Zeitpunkt, zu dem die Struktur definiert wird, noch nicht bekannt ist.

    MfG, Jochen



  • Es geht aber auch anders rum:

    struct EmailMIMEPart;
    typedef CList <EmailMIMEPart, EmailMIMEPart> EmailMIMEPartList;
    
    class Email
    {
    public:
        Email();
    
    private:
        CString                    m_Header;
        CString                    m_Body;
        EmailMIMEPartList        m_MimePartList;
    }
    
    struct EmailMIMEPart
    {
        CString        m_Name;
        Email        m_Email;
    };
    


  • Danke Euch Beiden!


Anmelden zum Antworten