读书人

【;於namespace】error LNK2019: un

发布时间: 2013-01-28 11:49:56 作者: rapoo

【求助;於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;
}


------解决方案--------------------



func.cpp
void SALES::showSales(const Sales &s){}
void SALES::setSales(Sales &s){}
void SALES::setSales(Sales &s, const double ar[],int n){}

读书人网 >C++

热点推荐