Problem mit Arrayinitialisierung

tantor

Grünschnabel
Hallo,

kann mir mal einer bitte sagen was ich falsch mache ?

Ich habe folgende Member angelegt :

Code:
class CWinRechnung1Dlg : public CDialog
{
// Konstruktion
public:
	CWinRechnung1Dlg(CWnd* pParent = NULL);	// Standardkonstruktor

// Dialogfelddaten
	enum { IDD = IDD_WINRECHNUNG1_DIALOG };

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV-Unterstützung


// Implementierung
protected:
	HICON m_hIcon;

	// Generierte Funktionen für die Meldungstabellen
	virtual BOOL OnInitDialog();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	DECLARE_MESSAGE_MAP()
public:
	short m_BeginnStunden;
	int m_AnzahlTageImMonat [12];                      // <------------ hier
	CString m_MonatsNamen [12];                       // <------------ hier
	afx_msg void OnEnKillfocusEdit1();
	CString m_Monatsname;
};

und später gäbe ich dann folgendes an :

Code:
BOOL CWinRechnung1Dlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Symbol für dieses Dialogfeld festlegen. Wird automatisch erledigt
	//  wenn das Hauptfenster der Anwendung kein Dialogfeld ist
	SetIcon(m_hIcon, TRUE);			// Großes Symbol verwenden
	SetIcon(m_hIcon, FALSE);		// Kleines Symbol verwenden

	// TODO: Hier zusätzliche Initialisierung einfügen
	GetDlgItem(IDC_EDIT2)->ShowWindow(FALSE);
	m_AnzahlTageImMonat = ( 31,28,31,30,31,30,31,31,30,31,30,31 );
/	m_MonatsNamen = ( "Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");

	
	return TRUE;  // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten
}

und da meckert der rum, zum einen mit :

c:\WINNT\Personal\Cpp\WinRechnung1\WinRechnung1Dlg.cpp(58): error C2440: '=' : cannot convert from 'char *' to 'CString [12]'

und

c:\WINNT\Personal\Cpp\WinRechnung1\WinRechnung1Dlg.cpp(57): error C2440: '=' : cannot convert from 'int' to 'int [12]'


Wo ist mein Denkfehler ?
 
Ja das Problem kenne ich, scheint so als ob man diese Klammersache nur bei der Initialisierung der Variable nutzen kann, also
Code:
int myArr[5] = {1,2,3,4,5};
 
Habe ich auch schon gemacht, wenn ich die Initialisierung an der Stelle vornehme dann meckert der rum, dass ich keine Initialisierungen an dieser Stelle wo ich die Member deklariere machen kann :-(
 
Ja, das geht auch nicht. Hm, dann bleibt wohl nur der umständliche Weg:
Code:
myArr[0] = 1;
myArr[1] = 2;
...
(wobei man die Monatstage eigentlich auch schon fast berechnen kann...)
 
so eine initialisierung mit { .. .} muss bei der Deklaration geshehen ... das geht natürlich nicht so einfach bei Klassen ... müsste aber funktionieren wenn du es vor dem Methodenkörper des Konstruktors machst
 
Zurück