为什么我编的程序里不能inlcude "xxx.cpp"文件
新手一枚。求问。
我编了一个XXX.cpp文件
#include <iostream.h>
#define maxlen 50
typedef int elemtype;
typedef elemtype sqlist[maxlen];
void adjust (sqlist A,int n)
{
sqlist B;
int i,x=0,y=n-1;
for(i=0;i<n;i++)
{
if(A[i]<0)
{
B[x]=A[i];
x++;
}
else
{
B[y]=A[i];
y--;
}
}
for(i=0;i<n;i++)
A[i]=B[i];
}
然后另外编了一个YYY.cpp文件
#include "XXX.cpp"
int create (sqlist A)
{
int i,n;
cout<<"创建一个顺序表"<<endl;
cout<<" 输入元素个数: ";
cin>>n;
for(i=0;i<n;i++)
{
cout<<"输入第"<<i+1<<"个元素值:";
cin>>A[i];
}
return n;
}
void disp(sqlist A,int n)
{
int i;
cout<<"输出一个顺序表"<<endl<<" ";
if(n==0) cout<<"空表";
for(i=0;i<n;i++)
cout<<A[i]<<" ";
cout<<endl;
}
int ins(sqlist A,int n,int i,elemtype x)
{
int j;
if(i<0||i>n)
cout<<"i值下溢或上溢"<<endl;
else
{
for(j=n-1;j>=i;j--)
A[j+1]=A[j];
A[i]=x;
n++;
}
return n;
}
int del(sqlist A,int n,int i)
{
int j;
if(i<0||i>n)
cout<<"i值下溢或上溢"<<endl;
else
{
for(j=i-1;j<n;j++)
A[j]=A[j+1];
n--;
}
return n;
}
int find(sqlist A,int n,elemtype x)
{
int i=0;
while(i<=n && A[i]!=x)
i++;
if(i<n)
return 1;
else
return 0;
}
void main()
{
sqlist A;
int n;
n=create(A);
disp(A,n);
adjust(A,n);
disp(A,n);
}
然后build的时候就出现了下面的错误,在网上找了很多2005的解决办法,还是解决不了。
head.obj : error LNK2005: "void __cdecl adjust(int * const,int)" (?adjust@@YAXQAHH@Z) already defined in test.obj
Debug/tstt.exe : fatal error LNK1169: one or more multiply defined symbols found
最后我试了一下把上面的XXX.cpp改成了XXX.h之后就可以了。
求个高手帮我解答一下这个是怎么回事。另外,如果我就是想include .cpp的话要怎么办呢。我试过改忽略库什么的都不好使。谢谢!