PDA

View Full Version : [C++] Array inizializzato dentro campo 'private' di una classe....


pixie
16-02-2010, 21:41
Salve a tutti.... non sono mai stato attivo cosė tnt su un forum...sopportatemi ancora una settimana...č per un progetto....
Cmq perchč non posso inizializzare un array dentro campo 'private' di una classe?
In questo modo intendo:

class mesi
{
private:
string mes [12] = { "Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno",
"Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"};
public:
...
};

zakmckraken
16-02-2010, 21:49
Come da titolo!

pixie
16-02-2010, 21:57
ah vero.....mi sto fondendo il cervello davv...quindi dichiaro la variabile ad es. mes dentro private e la inizializzo con un costruttore dentro public...ok grazie mille

cionci
17-02-2010, 10:49
Per fare una inizializzazione devi usare le liste di inizializzazione.
Se vuoi assegnare semplicemente il valore allora lo puoi fare anche all'interno del blocco di codice del costruttore.

In ogni caso per quel vettore utilizzerei un campo static.
A quel punto lo inizializzi cosė:

string mesi::mes [12] = { "Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno",
"Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"};

pixie
17-02-2010, 16:13
Grz cionci :)

bobby1112
26-05-2010, 10:08
stesso problema classe Map.h

#ifndef MAP_H
#define MAP_H

#define MAX_SIZE 36
class Map {

private :

char A[MAX_SIZE][MAX_SIZE];
public :

Map();
void setMap(); //carico la mappa
char* getMap(); // restituisce la mappa di gioco
};
#endif


classe Map.cpp


#include "Map.h"



Map::Map()
{
char Map::A[36][36]={

/*0*/ "************* ********************",
/*1*/ "* * * *",
/*2*/ "* * * *",
/*3*/ "* ** * ** *",
/*4*/ "* ** * ** *",
/*5*/ "* * * *",
/*6*/ "* *** * * *",
/*7*/ "* * * * ****** *",
/*8*/ "* * * * *",
/*9*/ "* * * * *",
/*10*/ "* * ********** *",
/*11*/ "* * * *",
/*12*/ "* * *",
/*13*/ "* *",
/*14*/ "* * * * *",
/*15*/ "***********************************",
// 01234567890123456789012345678901234

};


}
void Map::setMap()
{
//vettore[0]="1";

}

char* Map::getMap()
{
char* b;
return b;
}





mi da errore sulla inizializzazione di A

ridichiarazione della funzione membro non consentita

cionci
26-05-2010, 19:28
La risposta č sopra...