Witam. Mam napisać dowolny program z wykorzystaniem pól bitowych.
Napisałem coś takiego:
#include <iostream>
using namespace std;
struct osoba
{
int plec:1;
int wiek:7;
int potomstwo:4;
};
int main()
{
osoba osoba[3];
for (int b=0; b<=2; b++)
{
cout<<"ID: "<<b+1<<endl;
cout<<"Plec (0 - Mezczyzna, 1 - Kobieta): ";
cin>>osoba[b].plec;
cout<<"Wiek: ";
cin>>osoba[b].wiek;
cout<<"Ilosc dzieci: ";
cin>>osoba[b].potomstwo;
}
for (int b=0; b<=2; b++)
{
if (osoba[b].plec==0) cout<<"Mezczyzna "; else cout<<"Kobieta ";
cout<<osoba[b].wiek<<" lat, "<<"dzieci: "<<osoba[b].potomstwo<<endl;
}
system("pause");
return 0;
}
i podczas kompilacji wychodzą następujące błędy:
16 M:\MP\KLASA 3\bit.cpp cannot bind bitfield osoba[b].osoba::plec' to
int&'
18 M:\MP\KLASA 3\bit.cpp cannot bind bitfield osoba[b].osoba::wiek' to
int&'
20 M:\MP\KLASA 3\bit.cpp cannot bind bitfield osoba[b].osoba::potomstwo' to
int&'
Nie wiem w czym tkwi błąd. W moim odczuciu kod jest dobrze napisany, a jednak nie jest, bo się nie kompiluje. Jak usunę pola bitowe to program działa, ale z nimi nie chce ;/
Proszę o korekcję...