Jak używa się plików nagłówkowych?

0

Mam taki kod:

include<stdlib.h>
#include<stdio.h>
#include<iostream>
#include<conio.h>
#include<string>

using namespace std;

struct Osoba

{
	string imie, nazwisko;
	int wiek, wzrost;
	float waga;
};

void Wyswietl_wsk(Osoba *os)
{
	for (int i = 0; i < 5; i++)
	{
		cout << (os+i)->imie << " " << (os+i)->nazwisko << " " << (os+i)->wiek << " lat " << (os+i)->wzrost << " cm " << (os+i)->waga << " kg" << endl;
		
	}
}

void wczytaj_wsk(Osoba *os)
{
	for (int i = 0; i < 5; i++)
	{
		cout << "Wprowadz imie: ";
		cin >> (os+i)->imie;
		cout << "Wprowadz nazwisko: ";
		cin >> (os+i)->nazwisko;
		cout << "Wprowadz wiek: ";
		cin >> (os+i)->wiek;
		cout << "Wprowadz wzrost: ";
		cin >> (os+i)->wzrost;
		cout << "Wprowadz wage: ";
		cin >> (os+i)->waga;
		cout << endl;
	}

}

int main()
{
	Osoba os[5];
wczytaj_wsk(&os[0]);

	cout << "\n";

	Wyswietl_wsk (os);

	_getch();
}

Mam podzielić ten kod na 3 pliki, 1 nagłówkowy z deklaracji struktury i funkcji, drugi osoba z zawartością funkcji, trzecia z funkcją main. Moje pliki wyglądają tak:

Header.h -> http://wklej.org/id/1561619/

Osoba.cpp -> http://wklej.org/id/1561620/

Source.cpp -> http://wklej.org/id/1561621/

Kompiluję mam błędy:

1.jpg

Co robię źle?

poprawienie tagów wątku i dodanie obrazka do załączników posta - @furious programming

0

hmm

void Wyswietl_wsk(Osoba *os)
{
} 

zastąp

void Wyswietl_wsk(Osoba *os); 

I podobnie z resztą metod
Poza tym - czemu nie robisz tego normalnie na klasie?

PS. Pierwsze ostrzeżenie - zobacz na pierwszą linię kodu i drugą - czego brakuje w pierwszej?

0

W nagłówkowym tylko deklarujesz fukcje, zatem nie:

void Wyswietl_wsk(Osoba *os)
{
}

tylko

void Wyswietl_wsk(Osoba *os);

W pliku Source.cpp powinien być

#include "Osoba.cpp"

Po co Ci to wszystko:

#include<stdlib.h>
#include<stdio.h>
#include<iostream>
#include<conio.h>
#include<string>

skoro używasz tylko iostream ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1