Ich habe 2 Header-Dateien erstellt. ListA.h und ListN.hRedefinition-Fehler: Verschiedene .h-Dateien mit dem gleichen Klassennamen
Sie beide machen ihre eigene Verwendung ihrer eigenen einzigartigen Klasse Liste. Wenn ich mein Programm kompiliere (obwohl sie keine Möglichkeit haben zu wissen, dass das andere existiert, sagt es den folgenden Fehler)
Ich bin ziemlich sicher, es sollte nicht eine Neudefinition sein, aber es ist offensichtlich. Jede Hilfe wird geschätzt.
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)
{
//...
}
Haupt
#include <iostream>
#include "ListN.h"
using namespace std;
int main()
{
List myList;
return 0;
}
Sie sind beide im selben Projekt, das _might_ etwas damit zu tun haben könnte. –
** [basic.defodr] ** "Wenn eine solche Entität mit dem Namen D in mehr als einer Übersetzungseinheit definiert ist, dann muss jede Definition von D aus der gleichen Folge von Token bestehen ..." Sie haben diese Regel verletzt, indem Sie eine Entität namens "List", die in verschiedenen Übersetzungseinheiten unterschiedlich definiert ist. –