Method

MFox

Grünschnabel
(Sorry, hab vor dem Posten vergessen, das Topic fertig auszuschreiben :) )

Hallo,

ich habe ein Problem mit der Implementierung von Code in einer Methode, die sich in einer Klasse befindet, die sich wiederum auch in einer Klasse befindet.

Beispiel Header Datei:
Code:
class Test
{
	class
	{
		bool MachWas(void);
	} x;
};
In der cpp Datei wuerde ich dann den Code zu MachWas() implementieren, aber ich weiss nicht, wie ich die Methode einer Klasse in einer Klasse handlen soll.

Sowas wie das geht ja nicht:

Code:
bool Test::x::MachWas(void)
{
	//Code
}

Wie macht man das richtig?

Michael
 
Zuletzt bearbeitet:
Schau mal da:

Code:
#include <iostream>

using namespace std;

class Test{

        public:
                class Foo{

                        public:
                                bool machWas();
                };
};

bool Test::Foo::machWas(){
        cout << "Mach was" << endl;
}

int main(){


        Test::Foo f;
        f.machWas();
}

Gruß

RedWing
 
Danke fuer die Antwort.

Was ich nicht ganz verstehe ist, warum es geht, wenn ich "class Foo { ... }; " angebe, aber nicht, wenn ich "class { ... } foo;" angebe. So wuerde ich mir das Handling mit dem Instanzieren ersparen.

Variablen kann ich bei dem Weg, den ich eingeschlagen habe problemlos mit Werten fuellen, nur bei Code gehts halt nicht.
 
MFox hat gesagt.:
Danke fuer die Antwort.

Was ich nicht ganz verstehe ist, warum es geht, wenn ich "class Foo { ... }; " angebe, aber nicht, wenn ich "class { ... } foo;" angebe. So wuerde ich mir das Handling mit dem Instanzieren ersparen.

Variablen kann ich bei dem Weg, den ich eingeschlagen habe problemlos mit Werten fuellen, nur bei Code gehts halt nicht.

Dann mach es halt so:

Code:
#include <iostream>

using namespace std;

class Test{

        public:
                class Foo{

                        public:
                                bool machWas();
                }foo;
};

bool Test::Foo::machWas(){
        cout << "Mach was" << endl;
}

int main(){


        Test t;
        t.foo.machWas();
}
;)
Gruß

RedWing
 
Zurück