Zacząłem bawić się z klasami, zrobilem swoja klase, jest w niej dosc duzo wartosci, wiec reczne wpisywanie byloby bezsensowne, napisalem petle wczytujaca i tutaj wywala błąd. Kawałek kodu :
class player
{
public:
player();
string name;
string surname;
int age;
int height;
short int pt3[2]; //
short int pt2[2]; // 0 - hit's; 1 - attepmts; 2 - shoting skill
short int pt1[2]; //
short int rebounds[1]; // 0 - defense rebounds; 1 - offence rebounds
short int steals;
int pts[1];
void stats()
{
cout << surname << "\t" << pt3[0] << "/" << pt3[1] << "\t" << fixed << double(pt3[0]/pt3[1]) << "%";
cout << "\t" << pt2[0] << "/" << pt2[1] << "\t" << fixed << double(pt2[0]/pt2[1]) << "%";
cout << "\t" << pt1[0] << "/" << pt1[1] << "\t" << fixed << double(pt1[0]/pt1[1]) << "%";
cout << "\t" << rebounds[0] << "\t" << rebounds[1];
cout << "\t" << steals << "\t" << pts << " pts.";
}
};
i pętelka :
int i;
ifstream PLRS_LOAD("C:\\p1.txt");
player *p;
p = P1_PLAYERS[0];
for(i=0; i<i; i++)
{
PLRS_LOAD >> p->name >> p->surname >> p->age >> p->height;
PLRS_LOAD >> p->pt3[0] >> p->pt3[1] >> p->pt3[0];
PLRS_LOAD >> p->pt2[0] >> p->pt2[1] >> p->pt2[0];
PLRS_LOAD >> p->pt1[0] >> p->pt1[1] >> p->pt1[0];
PLRS_LOAD >> p->rebounds[0] >> p->rebounds[1];
PLRS_LOAD >> p->steals;
PLRS_LOAD >> p->pts[0] >> p->pts[1];
}
przy ustawianiu wskaźnika na początek tablicy P1_PLAYERS[0] wywala : error: cannot convert player' to
player*' in assignment|
nie wiem czy wybralem dobry sposob, dopiero co zaczalem ogarniac pojęcie klas i wskaźników.
+1 more question, dobrze napisałem tą funkcję void stats()? czy po wpisaniu np. P1_PLAYERS[5].stats(); wypisze mi staty gracza 5?
edit: powinno być w dziale C++, źle kliknąłęm : /
edit2: doszedłem do tego, że nie "podwyższam" wartości mojej zmiennej, tylko wartość wskaźnika, czyli w pętli powinno być p++, wtedy wszysto działa :)