重定义的问题
//SqList.h#define MAXLENGTH 100
typedef struct
{
int *elem;
int length;
}SqList; //一个顺序表的构造
//means.h
#include"SqList.h"
#define WRONG -1;
typedef int Status;
void MergeList_Sq(SqList &LA,SqList &LB, SqList &LC);
Status InitList(SqList &L);
Status ListInsert(SqList &L,int i,int e);
//means.cpp
#pragma once
#include<iostream>
#include"means.h"
#include"stdio.h"
using namespace std;
Status InitList(SqList &L)
{
L.elem=new int[MAXLENGTH];
if(!L.elem) exit(1);
L.length=0;
return 1;
}
Status ListInsert(SqList &L,int i,int e)
{
int j;
if((i<1)||(i>L.length+1)) return WRONG;
if(L.length==MAXLENGTH) return WRONG;
for(j=L.length-1;j>=i-1;j--)
L.elem[j+1]=L.elem[j];
L.elem[i-1]=e;
++L.length;
return 1;
}
void MergeList_Sq(SqList &LA,SqList &LB, SqList &LC)
{
int *pa,*pb,*pc;
int *pa_last,*pb_last;
LC.length=LA.length+LB.length;
LC.elem=new int[LC.length];
pc=LC.elem;
pa=LA.elem; pb=LB.elem;
pa_last=LA.elem+LA.length-1;
pb_last=LB.elem+LB.length-1;
while((pa<=pa_last)&&(pb<=pb_last)){
if( *pa < *pb) *pc++=*pa++;
else *pc++=*pb++;
}
while(pa<=pa_last) *pc++=*pa++;
while(pb<=pa_last) *pc++=*pb++;
}
//main.cpp
#pragma once
#include<iostream>
#include"SqList.h"
#include"means.h"
using namespace std;
int main()
{
SqList L1,L2;
Status InitList(SqList &L1);
Status InitList(SqList &L2);
return 0;
}
1> 正在对“Debug\链表的想家.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1> means.cpp
1> main.cpp
1>d:\临时c作业\链表的想家\链表的想家\sqlist.h(8): error C2371: “SqList”: 重定义;不同的基类型
1> d:\临时c作业\链表的想家\链表的想家\sqlist.h(8) : 参见“SqList”的声明
1> 正在生成代码...
为什么总是显示重定义,我明明只是定义了一次啊,本人初学数据结构,还望指教,程序中可能还有一些不规范或不真确的地方,希望能帮我指出来