Zdravim mam tenhle kod:
class trida
{
private:
string nazev;
public:
trida(const char * nazev);
trida(string nazev);
string getNazev() const {return nazev;};
};
trida::trida(const char * n):
nazev(n)
{};
trida::trida(string n):
nazev(n)
{};
class nadTrida : public trida
{
public:
static unsigned short int pocet;
nadTrida();
string getNazev() const {return trida::getNazev();};
};
static unsigned short int nadTrida::pocet = 0;
nadTrida::nadTrida():
trida({'P', 'O','L', 'O', 'Z', 'K', 'A', ' ', nadTrida::pocet, '\0'})
{pocet++;}
A mam par problemu:
1) nefunguje mi inicializator trida({'P', 'O','L', 'O', 'Z', 'K', 'A', ' ', nadTrida::pocet, '\0'})
(napadlo me jeste udelat tohle:
trida({'P', 'O','L', 'O', 'Z', 'K', 'A', ' ', (char)nadTrida::pocet, '\0'})
ale pise stejne chyby..
pise to tyhle chyby:
Error 1 error C2143: syntax error : missing ')' before '{' c:\documents and settings\david\dokumenty\visual studio 2008\projects\soucastky\soucastky\main.cpp 47 Soucastky
Error 2 error C2512: 'trida' : no appropriate default constructor available c:\documents and settings\david\dokumenty\visual studio 2008\projects\soucastky\soucastky\main.cpp 47 Soucastky
Error 3 error C2143: syntax error : missing ';' before '}' c:\documents and settings\david\dokumenty\visual studio 2008\projects\soucastky\soucastky\main.cpp 47 Soucastky
Error 4 error C2059: syntax error : ')' c:\documents and settings\david\dokumenty\visual studio 2008\projects\soucastky\soucastky\main.cpp 47 Soucastky
Error 5 error C2447: '{' : missing function header (old-style formal list?) c:\documents and settings\david\dokumenty\visual studio 2008\projects\soucastky\soucastky\main.cpp 48 Soucastky
Jak jinak mam tedy vyvolat konstruktor s retezcem ve kterem bude
"POLOZKA 1" - tedy za predpokladu ze existuje pouze 1 instance tridy.. atd.
Takze by to vypadalo takto:
nadTrida a;
a.getNazev() by vratila "POLOZKA 1"
nadTrida b;
b.getNazev() by vratila "POLOZKA 2"
atd...
Napadlo me napriklad scitani stringu, ale trida string nema konstruktor prijimajici parametr unsigned short atd....
Edit:
Ted sem si vzpomnel ze kdyz pretypuju promennou int na char tak stejne nedostanu znak toho cisla ktere potrebuju (char '1' != char 1)
Takze je to jeste horsi situace :'(