【求助;關於namespace】error LNK2019: unresolved external symbol
小弟C++初學者,編了一個簡單的程序。由一個user-defined header file, 以及兩個cpp文件組成。其中頭文件里用了定義了namespace。 編譯后,出現如下錯誤:
1>main.obj : error LNK2019: unresolved external symbol "void __cdecl SALES::showSales(struct SALES::Sales const &)" (?showSales@SALES@@YAXABUSales@1@@Z) referenced in function _main
後來我把三個文件中的和自定義namespace有關的部份都刪除掉。文件就可以正常運行了。希望哪位朋友可以指點一下,問題出在哪了?
附代碼:
//sales.h
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);
}
//func.cpp
#include<iostream>
#include"sales.h"
using namespace SALES;
void setSales(Sales &s, const double ar[],int n)
{
if (n>=4)
for (int i=0;i<QUARTERS;i++)
{
s.sales[i]=ar[i];
}
else
{
int i;
for (i=0;i<n;i++)
{
s.sales[i]=ar[i];
}
for (;i<QUARTERS;i++)
{
s.sales[i]=0;
}
}
//get average
double total=0;
for (int i=0;i<QUARTERS;i++)
{
total=total+s.sales[i];
}
s.average=total/QUARTERS;
//get max
double max=0;
for (int i=0;i<QUARTERS;i++)
{
if (max<s.sales[i])
max=s.sales[i];
}
s.max=max;
//get min
double min=s.sales[0];
for (int i=1;i<QUARTERS;i++)
{
if (min>s.sales[i])
min=s.sales[i];
}
s.min=min;
}
void setSales(Sales &s)
{
using namespace std;
//store sales
for (int i=0;i<QUARTERS;i++)
{
cout<<"Enter the No."<<i+1<<"of sales: ";
cin>>s.sales[i];
}
//get average
double total=0;
for (int i=0;i<QUARTERS;i++)
{
total=total+s.sales[i];
}
s.average=total/QUARTERS;
//get max
double max=0;
for (int i=0;i<QUARTERS;i++)
{
if (max<s.sales[i])
max=s.sales[i];
}
s.max=max;
//get min
double min=s.sales[0];
for (int i=1;i<QUARTERS;i++)
{
if (min>s.sales[i])
min=s.sales[i];
}
s.min=min;
}
void showSales(const Sales &s)
{
using namespace std;
cout<<"The content of sales is: "<<s.sales[0]<<" "<<s.sales[1]<<" "<<s.sales[2]<<" "<<s.sales[3]<<endl;
cout<<"The average is: "<<s.average<<endl;
cout<<"The max is: "<<s.max<<endl;
cout<<"The min is: "<<s.min<<endl;
}
//main.cpp
#include<iostream>
#include"sales.h"
using namespace SALES;
int main()
{
using namespace std;
Sales a;
setSales(a);
showSales(a);
cin.get();
cin.get();
return 0;
}