Witam, mógłby mi ktoś wytłumaczyć ten błąd, szukałem w necie, ale dalej nie rozumiem :(
Error 1 error LNK2005: "struct student * tab" (?tab@@3PAUstudent@@A) already defined in funkcje.obj D:\c++\programy visual\pdf9\pdf9\glowna.obj
Error 2 error LNK1169: one or more multiply defined symbols found D:\c++\programy visual\pdf9\Debug\pdf9.exe 1 1
glowny.cpp
#include<iostream>
#include<fstream>
#include"student.h"
using namespace std;
void main()
{
int i;
int z;
for (i = 0; i < MAX; i++)
{
tab[i].imie[0] = NULL;
tab[i].adres[0] = NULL;
tab[i].tel[0] = NULL;
}
for (i = 0; i < MAX; i++)
{
if (tab[i].imie[0] != NULL) z++;
}
int opcja;
cout << "Co chcesz zrobic?" << endl;
cin >> opcja;
while (opcja >= 1 || opcja <= 4)
{
switch (opcja)
{
case 1: cout << "Wprowadzenie studenta";
if (z != MAX)
{
for (i = 0; i < MAX; i++)
{
cin >> tab[i].imie;
cin.ignore();
cin >> tab[i].adres;
cin.ignore();
cin >> tab[i].tel;
cin.ignore();
z++;
break;
}
}
else{
cout << "Brak wolnych miejsc" << endl;
}
break;
case 2: cout << "Usuniecie studenta"; break;
case 3: cout << "Podglad"; break;
case 4: cout << "Wyjscie z programu"; break;
}
}
}
}
funkcje.cpp
#include<iostream>
#include<fstream>
#include"student.h"
void Load()
{
int i = 0;
int r = 0;
ifstream plik;
plik.open("baza.txt");
do{
if (plik.fail())
{
plik.close();
return;
}
if (!plik.eof())
{
plik.getline(tab[i].imie, sizeof(tab[i].imie), '#');
plik.getline(tab[i].adres, sizeof(tab[i].adres), '#');
plik.getline(tab[i].tel, sizeof(tab[i].tel), '#');
plik.ignore();
i++;
if (i == MAX) break;
}
} while (!plik.eof());
cout << "Rozmiar tablicy: " << i << endl;
plik.close();
}
void Save()
{
int i;
ofstream plik;
plik.open("baza.txt");
if (plik.fail())
{
plik.close();
cout << "Wystapil blad pliku!" << endl;
exit(1);
}
for (i = 0; i < MAX; i++)
if (tab[i].imie[0] != NULL)
{
plik << tab[i].imie << '#'
<< tab[i].adres << '#'
<< tab[i].tel << '#' << endl;
}
plik.close();
}
student.h
#include<iostream>
#include<fstream>
using namespace std;
const int MAX = 256; //max liczba wpisow
struct student{
char imie[64];
char adres[64];
char tel[16];
};
student tab[MAX];
void Save();
void Load();