instanz fremden memberfunktionen bekannt machen.
-
Hallo,
habe folgendes Problem.
Ich will eine Instanz ansprechen mit folgender memberfunktion:
class A
a.h
... const coid teste(int a, int b);a.cpp
{ public: teste(int a, int b) }; A eins;So nun will ich aus der Memberfunktion einer anderen Klasse die in einer extra header und cpp definiert und deklariert ist die teste funktion aufzurufen.
Kann ich irgendwie auch einen direkten Zugriff auf die Instanz eins haben ohne den ganzen extern krams die header zu schreiben?
weil hab direkt die klasse angesprichen, habe nur eine instanz, aber dann kommt der fehler: Ungültiger Verweis auf nicht-statischen Member
A::teste.
weil ja keine instanz angeben ist.
-
Ich habe irgendwie das Gefühl, dass du auf der Suche nach einem Singleton bist.
Aber bitte schreib deinen Beitrag nochmal, aber dann verständlich und mit nachvollziehbarem Code. Das kann man so ja gar nicht verstehen..
-
hier der detaillierte code:
Alpha.h
class Alpha { public: Alpha(); static void test(int a, CUInt& uFile); };Alpha.cpp
Alpha o_alpha; //... void test(int a, CUInt uFile){ cout << "zahl" << a << endl; }Beta.h
class Beta { public: Beta(); static void test2(); };Beta.cpp
Beta o_beta; void test2(){ Aplha::test1(22, uFile); //o_alpha::test1(22, uFile); }int main(){ Beta::test2(); }Ich bekomme nun einen fehler:
einmal das die überladene funktion nicht in alpha gefunden wird. "Überladene Memberfunktion nicht in 'Alpha' gefunden", bezieht sich auf test1.
-
Da sind viele Fehler drin. Erstmal musst du in deiner CPP-Datei bei der Definition von Memberfunktionen den Klassennamen vor die Funktion schreiben:
void Beta::test2() { /* ... */ }statt
void test2() { /* ... */ }Dann musst du drauf achten, dass die Funktionsdeklarationen in der Header-Datei zu deinen Definitionen in der CPP passen (Übergabeparameter). Sonst bekommst du entweder einen Compiler- oder Linkerfehler. Ich könnte dir jetz Code schicken, der funktioniert, aber das bringt keinen Lerneffekt. Versuchs mal selber hinzukriegen, bei Fragen kannst du dich ja nochmal melden..
-
entschuldige, hab ich vergessen vorzuschreiben beim kürzen des codes.
-
Eine genaue Beschreibung, was du eigentlich vorhast, und wo deine Probleme liegen wäre wünschenswert.
-
Ein B, das mit dem A nchts zu tun hat, solle eine Funktion von A ausführen? wie stellst du dir das vor?
Ne Kuh kann auch nicht blinken wie n Auto. Wenn du der Kuh sagst "blink mal" sagt die auch nur "muuh?"
Ungefähr das gleiche sagt dein Compiler hier
-
pumuckl schrieb:
Ein B, das mit dem A nchts zu tun hat, solle eine Funktion von A ausführen? wie stellst du dir das vor?
Ne Kuh kann auch nicht blinken wie n Auto. Wenn du der Kuh sagst "blink mal" sagt die auch nur "muuh?"
Ungefähr das gleiche sagt dein Compiler hier
MADE MY DAY

ich überlege mir ne möglichkeit meiner IDE beizubringen, "Muuh" zu machen, wenn Fehler beim compilieren auftreten^^