Witam. Ostatnimi czasy przerabiam sobie na wakacjach podręcznik stephena Prata. Mam problem z jednym ćwiczeniem. Oto program, który napisałem:
Plik1:
#ifndef NAGL_HPP
#define NAGL_HPP
namespace SALES
{
const int QUATERS=4;
struct Sales
{
double sales[QUATERS];
double average;
double max;
double min;
};
void setSale(Sales & s,const double ar[],int n);
void setSale(Sales & s);
void showSales(const Sales & s);
}
#endif // NAGL_HPP
Plik2:
#include<iostream>
#include "nagl.hpp"
using namespace std;
using namespace SALES;
void setSale(Sales & s,const double ar[],int n)
{
int total=0;
double max=0;
double min=0;
for(int i=0;i<n;i++)
{
s.sales[i]=ar[i];
if(max<s.sales[i])
max=s.sales[i];
else if (min>s.sales[i])
min=s.sales[i];
total+=s.sales[i];
}
int average=total/n;
s.max=max;
s.min=min;
s.average=average;
}
void setSale(Sales & s)
{
for(int i=0;i<4;i++)
{
cout<<"Podaj wartosci dla "<<i+1<<"kwartlow: ";
cin>>s.sales[i];
}
int total=0;
double max;
double min;
for(int i=0;i<4;i++)
{
if(max<s.sales[i])
max=s.sales[i];
else if (min>s.sales[i])
min=s.sales[i];
total+=s.sales[i];
}
int average=total/4;
s.max=max;
s.min=min;
s.average=average;
}
void showSales(const Sales & s)
{
for(int i=0;i<4;i++)
cout<<s.sales[i]<<endl;
cout<<s.average<<endl;
cout<<s.max<<endl;
cout<<s.min<<endl;
}
Plik3:
#include<iostream>
#include "nagl.hpp"
using namespace SALES;
using namespace std;
int main()
{
Sales hamburger;
Sales hotdog;
double tab[QUATERS]={4.2,5.1,6.9,21.37};
setSale(hotdog,tab,QUATERS);
setSale(hamburger);
showSales(hotdog);
showSales(hamburger);
return 0;
}
Po próbie kompilacji tego programu wyskakują mi takie błędy:
||=== Build: Debug in rozdz 9 cw 4 (compiler: GNU GCC Compiler) ===|
obj\Debug\file2.o||In function `main':|
C:\Users\ja\Desktop\programowanie\rozdz 9 cw 4\file2.cpp|10|undefined reference to `SALES::setSale(SALES::Sales&, double const*, int)'|
C:\Users\ja\Desktop\programowanie\rozdz 9 cw 4\file2.cpp|11|undefined reference to `SALES::setSale(SALES::Sales&)'|
C:\Users\ja\Desktop\programowanie\rozdz 9 cw 4\file2.cpp|12|undefined reference to `SALES::showSales(SALES::Sales const&)'|
C:\Users\ja\Desktop\programowanie\rozdz 9 cw 4\file2.cpp|13|undefined reference to `SALES::showSales(SALES::Sales const&)'|
||error: ld returned 1 exit status|
||=== Build failed: 5 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Za wszelką pomoc będę bardzo wdzięczny. Spodziewam się, że coś zrąbałem z referencjami, ale nie mam pojęcia co.