Struktur in Datentypmodul: Error "Undefined Structure"

Dj Mike

Mitglied
Hallo,
ich habe folgendes Problem:
Ich habe ein Datentypmodul test, in dem ich eine Struktur hab:

test.h:
Code:
struct test;
test.cpp:
Code:
#include "test.h"
struct test{
     ...
};
main.cpp:
Code:
#include "test.h"
void main(){
     test foobar;
}
Beim kompillieren bekomme ich die Fehlermeldung:
Undefined structure 'test' in function main()
Wenn ich die Struktur in der Headerdatei selbst komplett definiere bekomme ich folgenden Fehler:
Multiple declaration for 'test'
und
Earlier declaration of 'test'

Wo ist der Fehler?
Bin für jede Hilfe dankbar.

Micha
 
Hi.
Hallo,
ich habe folgendes Problem:
Ich habe ein Datentypmodul test, in dem ich eine Struktur hab:

test.h:
Code:
struct test;
test.cpp:
Code:
#include "test.h"
struct test{
     ...
};
main.cpp:
Code:
#include "test.h"
void main(){
     test foobar;
}
Beim kompillieren bekomme ich die Fehlermeldung:
Undefined structure 'test' in function main()
Um eine Variable eines best. Typs zu definieren muß dieser Typ vorher komplett definiert worden sein. Du mußt also die Struktur im Header vollständig definieren. Es ist höchstens erlaubt, einen Zeiger bzw. eine Referenz auf einen unvollständig definierten Datentyp zu definieren.
Wenn ich die Struktur in der Headerdatei selbst komplett definiere bekomme ich folgenden Fehler:
Multiple declaration for 'test'
und
Earlier declaration of 'test'

Wo ist der Fehler?
Du hast vermutlich die Datei test.h mehrfach eingebunden. Es ist nicht erlaubt eine Struktur mehrfach zu definieren - auch wenn die Definitionen gleich sind.

Üblicherweise schützt man eine Datei gegen Mehrfacheinbinden so:
C++:
// Datei: test.h

#ifndef TEST_H
#define TEST_H

// ...

#endif

Gruß
 
Ich hab meinen Fehler gefunden, ich hatte in der Header Datei
Code:
#pragma once
benutzt und nicht
Code:
#ifndef TEST_H
#define TEST_H
 
// ...
 
#endif
Dann funktioniert es auch, wenn man die Struktur in der Header Datei definiert.
Danke für die Hilfe.
Micha
 
Zurück