Sebastian Thalhammer
Erfahrenes Mitglied
Hi Leute
Neuer Tag, neues Problem.
Folgender Quelltext und folgende Probleme damit: Der Compiler meldet mir ständig dass das Objekt in der main.obj bereits definiert wurde. kann mit dieser Fehlermeldung jedoch nichts anfangen, da die Klasse ja von mir definiert wurde (?) Ich poste hier meinen gesamten Code um Unklarheiten zu vermeiden. Hoffentlich kann mir jemand helfen.
Headerdatei der Klasse
Cpp Datei der Klasse
Main.cpp
Fehlermeldung:
"public: __thiscall CDataHandling::CDataHandling(char const *)" (0CDataHandling@@QAE@PBD@Z) ist bereits in main.obj definiert
Neuer Tag, neues Problem.
Folgender Quelltext und folgende Probleme damit: Der Compiler meldet mir ständig dass das Objekt in der main.obj bereits definiert wurde. kann mit dieser Fehlermeldung jedoch nichts anfangen, da die Klasse ja von mir definiert wurde (?) Ich poste hier meinen gesamten Code um Unklarheiten zu vermeiden. Hoffentlich kann mir jemand helfen.
Headerdatei der Klasse
PHP:
//Data.h//
#pragma once
// Klasse zum Handlen der Datei //
class CDataHandling
{
public:
CDataHandling(const char *FileArgument); // Konstruktor //
char *FileName; // Memberarray für Dateiname //
int StringLength; // Membervariable für Stringlaenge
public:
~CDataHandling(void); // Destruktor //
};
Cpp Datei der Klasse
PHP:
#include "Data.h"
#include <string> // Stringfunktionen //
// KONSTRUKTOR //
CDataHandling::CDataHandling(const char *FileArgument)
{
if(!FileArgument)
{
FileArgument = "";
return;
}
// Dynamische Membervariable erzeugen und mit Argumentwert belegen //
FileName = new char[strlen(FileArgument)+1];
strcpy(FileName, FileArgument);
// Membervariable für Stringlänge erzeugen //
StringLength = (int) strlen(FileName);
}
// DESTRUKTOR //
CDataHandling::~CDataHandling(void)
{
// Dynamisches Array freigeben //
if (FileName)
delete[] FileName;
}
Main.cpp
PHP:
#include <iostream>
#include <ctype.h>
#include <string>
// Einbinden der Klassendefinitionen //
#include "Data.cpp"
using namespace std; // Stream std als Namespace definiert
// FUNKTIONSDEKLARATION //
int main (int argc, char *argv[] )
{
char *CommandArgument = argv[1];
// Bildschirm leeren //
system("cls");
// ARGUMENTÜBERPRÜFUNG //
// Keine Parameter beim Aufruf übergeben //
if (argc <= 1)
{
cout <<"Geben Sie als Parameter die einzulesende Datei ein!"<< endl;
system("pause");
return 0;
}
// Zu viele Parameter übergeben //
if (argc > 2)
{
cout <<"Zu viele Parameter uebergeben"<< endl;
system("pause");
return -1;
}
// Dateiname als Parameter übergeben //
if (argc == 2)
{
int iPointPosition = 0; // Variable zur Anzeige der Punktposition des Arguments //
// Suchen der Position des '.' Zeichens //
for (unsigned int count = 0; count <= strlen(CommandArgument); count++)
{
// Wenn der Punkt gefunden wurde wird die Schleife beendet //
if (CommandArgument[count] == '.')
{
iPointPosition = count;
break;
}
}
// Überprüfung des Strings ab der Punktstelle //
if (CommandArgument[iPointPosition + 1] == 't' && CommandArgument[iPointPosition + 2] == 'x' && CommandArgument[iPointPosition + 3] == 't')
{
// Erstellen der Klasse CData bei der das Argument der Textfile übergeben wird //
CDataHandling HandleFile(CommandArgument);
cout << "Textdatei" << endl;
}
else
{
cout << "Ungueltiger Parameter. Geben Sie Parameter in Form von *.txt an." << endl;
return -1;
}
system("pause");
return 0;
}
}
Fehlermeldung:
"public: __thiscall CDataHandling::CDataHandling(char const *)" (0CDataHandling@@QAE@PBD@Z) ist bereits in main.obj definiert
Zuletzt bearbeitet: