Zugriff auf Funktion einer Klasse...nichtdeklarierter Bezeichner



  • Hallo zusammen,

    ich bin ein "leicht fortgeschrittener Anfänger" in der MFC-Programmierung und hätte da mal eine kleine Frage. Ich bin da schon eine Weile am suchen, komm aber nicht so richtig weiter...

    Ich schreibe an einem Dialogfeldbasierenden Programm, in dem ich eine Instanz einer eigenen Klasse mit Namen "rc" erzeuge. Aus dieser Klasse heraus rufe ich dann ein benutzerdefiniertes Dialogfeld (RcOptionsDlg) auf. Auf diesem Dialogfeld gibts es einen Button, über den ich gerne eine Funktion mit Namen BrowseNet() der Dialogfeldaufrufenden Klasse "rc" benutzen würde......geht aber nich....:-(...

    Er gibt mir immer die Fehlermeldung :
    RcOptionsDlg.cpp(59) : error C2065: 'BrowseNet' : nichtdeklarierter Bezeichner

    Ich habe probiert, die Header-Datei der Klasse rc in die RcOptionsDlg.cpp und die RcOptionsDlg.h zuinkludieren....auch mit der Reihenfolge der includes hab ich schon rumexperimentiert....daher müsste die Funktion eigentlich bekannt sein.......und jetzt gehen mir so langsam die Ideen aus...

    Freu mich über jede Antwort, die helfen könnte !!!

    Gruß Okriv



  • Schau am besten mal nach ob deine Funktion BrowseNet() den Status Public besitzt. Das wäre das einzige was mir dazu einfältt.



  • Hallo Partisan,

    die Funktion ist als Public deklariert. Trotzdem Danke !!...

    Ist es überhaupt möglich, auf eine "Parent"-Klasse ohne Nutzung von Pointer zuzugreifen ?

    Gruß
    Okriv



  • McUschi schrieb:

    Ich habe probiert, die Header-Datei der Klasse rc in die RcOptionsDlg.cpp und die RcOptionsDlg.h zuinkludieren....[...]....daher müsste die Funktion eigentlich bekannt sein

    Nur durch das include der Headerdatei ist die Funktion noch nicht bekannt. Dadurch kannst du aber ein Objekt der Klasse erstellen. Also sowas wie
    rc objrc;
    Dann hast du das Objekt objrc vom Typ der Klasse rc erzeugt. Und darüber kannst du dann deine Funktion aufrufen:
    objrc.BrowseNet();
    (Öhm, jedenfalls theoretisch, habe ich jetzt nicht wirklich ausprobiert, denn im schlimmsten Fall entsteht durch die gegenseitigen includes eine Kreisreferenz...)



  • Hey Isabeau,

    vielen Dank für die Antwort...bei "rc" handelt es sich in meinem Fall schon um ein Objekt. Die Klasse dazu heißt CRCall. Ist vielleicht aus meiner Beschreibung ein bisschen mißverständlich zu verstehen...hab ich erst jetzt gemerkt...sorry 🙄

    Ich rufe also aus dem Objekt "rc" der Klasse "CRCall" ein Dialogfeld auf, von dem aus ich eine Funktion des Objekts "rc" ansprechen will....ich fürchte ja inzwischen, daß ich da um Pointer nicht herumkomme...aber da kenn ich mich halt noch eher schlecht aus 😞

    Gruß
    Okriv


Anmelden zum Antworten