Mailinglist Archive: opensuse-programming-de (211 mails)

< Previous Next >
Re: Auf Daten einer anderen Klasse zugreifen
  • From: Bodo Kaelberer <BodoKaelberer@xxxxxxxxxx>
  • Date: Wed, 26 Mar 2003 17:26:16 +0100
  • Message-id: <5616281683.20030326172616@xxxxxxxxxx>
hi


> Ich möchte ganz einfach auf Daten einer Klasse von einer anderen aus
> zugreifen. Dazu habe ich z.B. 2 Headerdateien und 2 worin sich der
> Code befindet:

> header1.h:
> ...
> class Klasse1 {
> public
> QString hallo;
> ...}

> code1.cpp:
> hallo="hallo, Welt!";
> ...

> header2.h:
> class Klasse2 {
> ...
> }

> code2..cpp:
> #include "header1.h"
> #include "header2.h"
> cout << hallo << endl;

> Soweit ich das verstanden habe, müsste es doch so in etwa
> funktionieren, oder? Nur bekomme ich ungefähr so eine Fehlermeldung:
> undeclared indentifier hallo
> Hä? Wenn es public ist, müsste ich doch auch aus anderen Klassen
> zugreifen können, oder? Die Aufrüfe von hallo erfolgen jeweils im
> Kontruktor von Klasse1 bzw. Klasse2.

> P.S. Das oben sind natürlich nur vereinfachte Beispiele.

Aha. Also ich weiss nicht, ob nicht etwas mehr Code dem Verstaendnis
foerderlich gewesen waere (-;

Ist die Zeile
cout << hallo << endl;
innerhalb einer Funktion von Klasse2? Also von Deinem Code her nicht.
Weil sonst koennte unmoeglich direkt davor header2.h geladen werden.

Auf hallo aus Klasse1 kannst Du von einer anderen Klasse nur
zugreifen, wenn auch ein Objekt von Klasse1 hast. z.B.

class Klasse2 {

Klasse1 MeinHalloSprecher;

public:

void funktion() {
cout << MeinHalloSprecher.hallo << endl;
}

};

(ungetestet)

> code2..cpp:
> #include "header1.h"
> #include "header2.h"
> cout << hallo << endl;


Vielleicht magst Du, wenn Dir Stefans Antwort nicht das gewuenschte
liefern sollte, noch mal etwas mehr Code posten, so dass die
Zusammenhaenge erkennbar sind.

Bye

P.S. Deklarationen von Klassen werden mit einem ; abgeschlossen.

--
| Bodo Kaelberer
| http://www.webkind.de/
| http://www.mehr-demokratie-wagen.de/
----
| Haben oder Nichts sein


< Previous Next >
References