Hi,
ich habe ein kleines (Verständnis-?)Problem mit dem ofstream in C++.
Ich habe ein Programm geschrieben, welches aus mehreren Einzeldateien besteht. In jeder dieser Datei will ich den ofstream verwenden (es soll immer in die gleiche datei geschrieben werden). Beim Erstellen bekomme ich dann die Fehlermeldung:
Anscheinend mache ich da irgendeinen Fehler, auf den ich nicht von selbst kommen will. Der ofstream "fileout" ist eigentlich nur in "main.h" definiert (welches über #ifndef durch mehrfaches Einbinden abgesichert ist), in test.cpp soll er dann in einer show-Funktion verwendet werden, ebenso in der main.cpp. (In welcher Datei muss denn dann der ofstream stehen? das passt bei mir anscheinend nicht).
Über Hilfe wäre ich sehr dankbar
Hier das Programm:
main.cpp
main.h
test.cpp
und test.h
Vielen Dank!
Grüße mymic
ich habe ein kleines (Verständnis-?)Problem mit dem ofstream in C++.
Ich habe ein Programm geschrieben, welches aus mehreren Einzeldateien besteht. In jeder dieser Datei will ich den ofstream verwenden (es soll immer in die gleiche datei geschrieben werden). Beim Erstellen bekomme ich dann die Fehlermeldung:
Code:
test.obj : error LNK2005: "class std::basic_ofstream<char,struct std::char_traits<char> > fileout" (?fileout@@3V?$basic_ofstream@DU?$char_traits@D@std@@@std@@A) ist bereits in main.obj definiert
fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.
Über Hilfe wäre ich sehr dankbar
Hier das Programm:
main.cpp
Code:
#include "Ctest.h"
void main(void)
{
cout << "Test" << endl;
fileout << "Test" << endl;
}
main.h
Code:
#ifndef main_h
#define main_h
#include <iostream>
#include <fstream>
using namespace std;
ofstream fileout("output.txt");
#endif
test.cpp
Code:
#include "Ctest.h"
ctest::ctest() {
out = 3;
}
ctest::~ctest() {}
void ctest::show() {
fileout << out << endl;
}
und test.h
Code:
#ifndef test_h
#define test_h
#include "main.h"
class ctest {
private:
int out;
public:
ctest();
~ctest();
void show();
};
#endif
Vielen Dank!
Grüße mymic