Wieso sind meine Methoden keine Elemente meiner Klasse??



  • Hallo

    ich habe ein großes Problem und zwar habe ich eine Klasse von CRecordset abgeleitet um eine ODBC Verbindung zu erstellen. Damit alles übersichtlich ist , benutze ich verschiedene Methoden , aber der Compiler sagt mir als diese

    Fehlermeldung:C:\Dokumente und Einstellungen\Dors\Desktop\C++\EchoServer\DatabaseConnection.cpp(62) : error C2039: 'StoreUserData' : Ist kein Element von 'DatabaseConnection'
            C:\Dokumente und Einstellungen\Dors\Desktop\C++\EchoServer\DatabaseConnection.h(14) : Siehe Deklaration von 'DatabaseConnection'
    

    Und das bei allen drei Methoden wie Ihr in meiner nun abgebildeten Klasse sehen könnt:

    [cpp]#if !defined(AFX_DATABASECONNECTION_H__23225211_E680_4772_B5DD_254D523D20B2__INCLUDED_)
    #define AFX_DATABASECONNECTION_H__23225211_E680_4772_B5DD_254D523D20B2__INCLUDED_
    #include <afxdb.h> 
    #include <string>
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
    // DatabaseConnection.h : Header-Datei
    //
    
    /////////////////////////////////////////////////////////////////////////////
    // Satzgruppe DatabaseConnection 
    
    class DatabaseConnection : public CRecordset
    {
    public:
    	DatabaseConnection(CDatabase* pDatabase = NULL);
    	DECLARE_DYNAMIC(DatabaseConnection)
    
    // Feld-/Parameterdaten
    	//{{AFX_FIELD(DatabaseConnection, CRecordset)
    	//}}AFX_FIELD
    
    // Überschreibungen
    	// Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen
    	//{{AFX_VIRTUAL(DatabaseConnection)
    	public:
    	virtual CString GetDefaultConnect();    // Standard-Verbindungszeichenfolge
    	virtual CString GetDefaultSQL();    // Standard-SQL für Satzgruppe
    	virtual void DoFieldExchange(CFieldExchange* pFX);  // RFX-Unterstützung
    	//}}AFX_VIRTUAL
    
    // Implementierung
    #ifdef _DEBUG
    	virtual void AssertValid() const;
    	virtual void Dump(CDumpContext& dc) const;
    
    	void LoadUserList();
    	void LoadCarList();
    	void LoadLeasingList();
    	void StoreUserData(std::string NewUser);
    	void StoreCarData(std::string NewCar);
    	void StoreLeasingData(std::string NewLeasing);
    
    #endif
    };
    
    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein.
    
    #endif // AFX_DATABASECONNECTION_H__23225211_E680_4772_B5DD_254D523D20B2__INCLUDED_
    
    [/cpp]
    

    Ich weiss net wie ich diesen Fehler beheben kann, kann mir jemand helfen??

    gruß Silver



  • Hast du (a) die Methode implementiert und (b) den Debug Modus abgeschaltet, dass das #ifdef nicht greift?



  • ich würde ja das '#endif' etwas nach oben verschieben (genauer - hinter die Deklaration von Dump()).



  • CStoll schrieb:

    ich würde ja das '#endif' etwas nach oben verschieben (genauer - hinter die Deklaration von Dump()).

    Wie blöd, danke genau das war der Fehler. Mir ist das überhaupt nicht aufgefallen 🙄



  • dir nicht - dem Compiler (genauer: Präprozessor) schon 😉


Anmelden zum Antworten