我创建了2个头文件。 ListA.h和ListN.h重新定义错误:使用相同类名称的不同.h文件
他们都自己使用自己的独特的类列表。当我编译我的程序(即使他们无法知道另一个存在,它说下面的错误)
我很确定它不应该是一个重新定义,但它显然是。任何帮助表示赞赏。
ListA.h
#ifndef __LISTA_H_
#define __LISTA_H_
#include <iostream>
using namespace std;
class List{
public:
List(int = 0);
List(const List&);
~List();
};
#endif
ListN.h
#ifndef __LISTN_H_
#define __LISTN_H_
#include <iostream>
using namespace std;
class List{
public:
List(int = 10);
List(const List&);
~List();
};
#endif
ListA.cpp
#include "ListA.h"
using namespace std;
List::List(int mySize)
{
//...
}
ListN.cpp
#include "ListN.h"
#include <iostream>
using namespace std;
List::List(int size)
{
//...
}
主要
#include <iostream>
#include "ListN.h"
using namespace std;
int main()
{
List myList;
return 0;
}
它们都在同一个项目中,_might_与它有关。 –
** [basic.def.odr] **“给定一个名为D的实体定义在多个翻译单元中,那么D的每个定义都应包含相同的标记序列......”你违反了这个规则,一个名为'List'的实体在不同的翻译单元中定义不同。 –