Pole objektov,neviem zavolat konstruktor prvku...
class trieda
{
private :
char nazov_spolocnosti[40];
int pocet_akcii;
int cena_akcie;
int celkova_cena;
void trieda::upravSTR(char * p1 , char * p2 , int rozsah);
public :
trieda::trieda();
trieda::~trieda();
void trieda::napln(char * str , int pa , int ca);
void trieda::vypis();
};
Ako vidiet konstruktor mam bez parametrov a v hlavnom programe mam pole objektov...definicia konstruktoru je takato :
trieda::trieda()
{
nazov_spolocnosti[0] = '\0';
pocet_akcii = 0;
cena_akcie = 0;
celkova_cena = 0;
}
A v hlavnom programe mam cez switch menu a v nom ked pridam do pola polozku,a nenacitam hodnotu premennym v objekte,thak mi ten konstruktor ako keby nezavolalo,pri vypise su tam same blbosti...A bezparametricky konstruktor by malo volat defaultne,nie?Este pridam aj cast hlavneho programu :
int main()
{
trieda * pole = NULL;
char volba;
int rozsah = 0;
int pom = 0;
do
{
main_menu();
cin>>volba;
cin.clear();
while(cin.get() != '\n')
continue;
switch(volba)
{
case 'p' :
case 'P' : rozsah++;
pole = (trieda *) realloc(pole , sizeof(trieda) * rozsah);
napln(&pole[rozsah - 1]);
break;
Za poradenie dopredu dakujem...
Pre pridávanie komentárov sa musíte prihlásiť.
int napln(trieda * O)
{
char volba;
int cena = 0;
char nazov[40];
for (int i = 0 ; i < 39 ; i++)
{
nazov[i] = '\0';
}
int pocet = 0;
do
{
menu_napln();
cin>>volba;
cin.clear();
while(cin.get() != '\n')
continue;
switch(volba)
{
case 'n' :
case 'N' : system("cls");
cout<<"Zadaj nazov spolocnosti : ";
cin.get(nazov , 40).get();
break;
case 'a' :
case 'A' : system("cls");
cout<<"Zadaj pocet akcii co vlastni spolocnost : ";
cin>>pocet;
cin.clear();
while(cin.get() != '\n')
continue;
break;
case 'j' :
case 'J' : system("cls");
cout<<"Zadaj cenu jednej akcie : ";
cin>>cena;
cin.clear();
while(cin.get() != '\n')
continue;
break;
case 'q' :
case 'Q' : system("cls");
cout<<"NAVRAT DO MAIN MENU!!!"<<endl;
getch();
break;
default : system("cls");
cout<<"Bola zadana zla volba,volbu opakuj!!!"<<endl;
getch();
break;
}
}
while(volba != 'q' && volba != 'Q');
if(pocet == 0 || cena == 0 ||nazov[0] == '\0')
{
return 0;
}
else
{
O->napln(nazov , pocet , cena);
return 1;
}
}
No achybu som mal pri deklaracii tych premennych,lebo som im nedal ziadnu defaultnu hodnotu...