Witam, mam problem z podanym kodem:
osoby.h:
#ifndef OSOBY_H
#define OSOBY_H
#include<iostream>
#include<list>
list<Osoba> baza_osob;
struct Osoba
{
char imie[20]{};
char nazwisko[20]{};
int wiek{};
double waga{};
int wzrost{};
};
Osoba wczytaj(Osoba nowa);
void dodaj_osobe_do_listy(Osoba &do_dodania);
#endif
osoby.cpp:
//#include<iostream>
#include"osoby.h"
using namespace std;
Osoba wczytaj(Osoba nowa)
{
cout << "\nimie: ";
cin.getline(nowa.imie, 20);
cout << "\nnazwisko: ";
cin.getline(nowa.nazwisko, 20);
cout << "\nwaga: ";
cin >> nowa.waga;
cout << "\nwiek: ";
cin >> nowa.wiek;
cout << "\nwzrost: ";
cin >> nowa.wzrost;
return nowa;
}
void dodaj_osobe_do_listy(Osoba &do_dodania)
{
wczytaj(do_dodania);
baza_osob.push_back(do_dodania);
}
main.cpp:
#include"osoby.h"
using namespace std;
int main()
{
Osoba testowa;
// testowa.wiek = 15;
//wczytaj(testowa);
system("pause");
int menu;
cin >> menu;
switch (menu)
{
case 1:
{
dodaj_osobe_do_listy(testowa);
}
}
}
nie rozumiem dla czego podany program nie kompiluje się i wyświetla (w VS2013) podane błędy:
1>c:\users\lenovo\desktop\politechnika\informatyka\zadaniac++\cwiczenia_9,10\zadanie10_1-2-3\zadanie10_1-2-3\osoby.h(7): error C2143: syntax error : missing ';' before '<'
1>c:\users\lenovo\desktop\politechnika\informatyka\zadaniac++\cwiczenia_9,10\zadanie10_1-2-3\zadanie10_1-2-3\osoby.h(7): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\lenovo\desktop\politechnika\informatyka\zadaniac++\cwiczenia_9,10\zadanie10_1-2-3\zadanie10_1-2-3\osoby.h(10): warning C4351: new behavior: elements of array 'Osoba::imie' will be default initialized
1>c:\users\lenovo\desktop\politechnika\informatyka\zadaniac++\cwiczenia_9,10\zadanie10_1-2-3\zadanie10_1-2-3\osoby.h(11): warning C4351: new behavior: elements of array 'Osoba::nazwisko' will be default initialized
1>c:\users\lenovo\desktop\politechnika\informatyka\zadaniac++\cwiczenia_9,10\zadanie10_1-2-3\zadanie10_1-2-3\osoby.cpp(24): error C2065: 'baza_osob' : undeclared identifier
1>c:\users\lenovo\desktop\politechnika\informatyka\zadaniac++\cwiczenia_9,10\zadanie10_1-2-3\zadanie10_1-2-3\osoby.cpp(24): error C2228: left of '.push_back' must have class/struct/union
1> type is 'unknown-type'
1> main.cpp
1>c:\users\lenovo\desktop\politechnika\informatyka\zadaniac++\cwiczenia_9,10\zadanie10_1-2-3\zadanie10_1-2-3\osoby.h(7): error C2143: syntax error : missing ';' before '<'
1>c:\users\lenovo\desktop\politechnika\informatyka\zadaniac++\cwiczenia_9,10\zadanie10_1-2-3\zadanie10_1-2-3\osoby.h(7): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\lenovo\desktop\politechnika\informatyka\zadaniac++\cwiczenia_9,10\zadanie10_1-2-3\zadanie10_1-2-3\osoby.h(10): warning C4351: new behavior: elements of array 'Osoba::imie' will be default initialized
1>c:\users\lenovo\desktop\politechnika\informatyka\zadaniac++\cwiczenia_9,10\zadanie10_1-2-3\zadanie10_1-2-3\osoby.h(11): warning C4351: new behavior: elements of array 'Osoba::nazwisko' will be default initialized
przede wszystkim chodzi mi o znaczenie błędu:
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
oraz o to jak go naprawić.
z góry dziękuję za pomoc