Zdravím!
Mám menší problém. Dostal jsem za úkol udělat jednoduchý program složený ze tří zdrojových souborů. V prvním jsou definované typy a prototypy, v druhém samotné funkce a ve třetím funkce main().
Problém je, že pokud použiju ve funkci main funkci z druhého souboru, kompilátor to bere jako kdybych přetěžoval funkci, kde neví zdali zvolit prototyp z prvního souboru, nebo definovanou funkci ze druh=ho souboru.
Podle mě je problém kdesi ve jmenných prostorech, ale nějak mě nenapadá kde, tak vás chci poprosit, jestli na to nemůžete kouknout.
První soubor:
namespace SALES
{
const int QUARTERS = 4;
struct Sales
{
double sales[QUARTERS];
double average;
double max;
double min;
};
void setSales(Sales & s, const double ar[], int n);
void setSales(Sales & s);
void showSales(const Sales & s);
}
Druhý soubor:
#include "prvni.cpp"
#include <iostream>
using namespace SALES;
using std::cout;
using std::cin;
using std::endl;
void setSales(Sales & s, const double ar[], int n)
{
int x;
if (n < 4)
x = n;
else
x = 4;
for (int i = 0; i <x; i++)
s.sales[i] = ar[i];
for (int i = 0; i <x; i++)
s.average += s.sales[i];
s.average /= x;
double max=-32000;
for (int i = 0; i<x; i++)
{
if (s.sales[i] < s.sales[i+1])
max = s.sales[i+1];
}
double min;
for (int i = 0; i<x; i++)
{
if (s.sales[i] > s.sales[i+1])
min = s.sales[i+1];
}
s.max = max;
s.min = min;
}
Třetí soubor:
#include "druhy.cpp"
using namespace SALES;
int main()
{
Sales s;
double ar[10] = { 1, 3, 2, 5, 4 };
int n = 3;
setSales(s,ar,n);
cin.get();
cin.get();
return 0;
}