Gültigkeitsbereich in Klasse

DerSiebte

Mitglied
Hallo zusammen

Ich habe ein Verständnisproblem mit der Gültigkeit.
Ich dachte, wenn man in einer Klasse eine Variable oder ein Objekt erstellt dann ist sie für die ganze Klasse verfügbar. Aber bei mir geht es nicht:

Code:
class SpielenDlg : public CDialog
{
	DECLARE_DYNAMIC(SpielenDlg)

public:
	SpielenDlg(CWnd* pParent/* = NULL*/,Team& Heim,Team& Gast);   
	virtual ~SpielenDlg();

// Dialog Data
	enum { IDD = IDD_SPIELEN_DIALOG };

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

	DECLARE_MESSAGE_MAP()
public:
  int m_TeamA;
  int m_TeamB;
  Team& Team1=Heim;  // <---- Hier meldet er die Fehlermeldung

  afx_msg void OnBnClickedOk();
};


Fehlermeldung:
error C2065: 'Heim' : undeclared identifier

Heim wurde doch oben im Konstruktor erzeugt

ich kann auch nicht mit einer Funktion auf "Heim" zugreifen, das war eigentlich mein erstes Ziel. Dann hab ich es mal so probiert aber geht auch nicht.

Bin um jede Hilfe dankbar.

Gruss

DerSiebte
 
Hi.
Code:
class SpielenDlg : public CDialog
{
	DECLARE_DYNAMIC(SpielenDlg)

public:
	SpielenDlg(CWnd* pParent/* = NULL*/,Team& Heim,Team& Gast);   
...
  Team& Team1=Heim;  // <---- Hier meldet er die Fehlermeldung
};


Fehlermeldung:
error C2065: 'Heim' : undeclared identifier

Heim wurde doch oben im Konstruktor erzeugt
Nö. Du hast im Konstruktor einen Parameter deklariert. Wie ein Parameter heißt, ist aber völlig uninteressant, da es auch mehrere Methoden geben kann, die einen Paramter mit gleichem Namen haben, die natürlich nicht im Typ übereinstimmen müssen.
ich kann auch nicht mit einer Funktion auf "Heim" zugreifen
Wie auch? Der Name Heim bezeichnet einen Parameter, der nur innerhalb des Konstruktors der Klasse sichtbar ist.

Du kannst in einer Klassendeklaration sowieso keine Zuweisungen von Objekten vornehmen. Das solltest du in der Initialisierungsliste bei der Definition des Konstruktors tun:
C++:
SpielenDlg::SpielenDlg(CWnd* pParent/* = NULL*/,Team& Heim,Team& Gast) :
  Team1(Heim)
{
   // ...
}
Gruß
 
Zuletzt bearbeitet:
Zurück