Ich wünsche euch erstmal einen schönen Tag, ich bin neu hier und dies wird mein erster Beitrag, habt also etwas Nachsicht mit mir
Kurze Einleitung:
Also ich (eigentlich war es eine Gruppenarbeit) habe aus einer Auffgabenstellung herraus ein Programm geschrieben das diesem Standardbeispiel "Listen" zugeordnet werden kann. Es soll eine Liste erzeugen, Knotenpunkte ablaufen, einfügen, löschen etc pp. Dadurch wurde mein Interesse für C++ geweckt, so dass ich Privat versuche mir etwas mehr beizubringen und mich zurzeit mit dem Thema Modularisierung/Objektorientierte Programmierung beschäftige.
Das Problem:
Das Programm habe ich also versucht zu Modularisieren, sprich das Programm in funktionen und header zu zerlegen. Im großen und ganzen klappt das auch, nur das ich irgendwann beim Kompilieren die Meldung "multiple defination of..." erhielt. Diese Fehlermeldung konnte ich abschalten, nun stürtzt das Programm nach geringer Zeit ab, was mich langsam zur Verzweiflung bringt, da auch eine Fehlersuche keine Ergebnisse bringt.
Darum bitte ich das sich das Programm mal jemand anschaut und mir Hilfestellung geben kann.(Programm ist als .dev-Projekt geschrieben)
ListenMain.cpp: // Main
ListenFkt.cpp // Funktionen
ListenHead.h // sollte eigentlich einzige Header sein, durch "multple..." Problem und anderen Erfahrungen das "Problemkind" "ausgelagert"
listen_l.h // Hilfsheader--> "multiple...."-Problem
Ich verwende den DevCompiler Version 4.9.9.2, das Programm ist so wie es ist die "Absturz"-Variante. Lässt sich aber ohne Fehler Kompilieren
Mit freundlichen Grüßen
Docci
edit: bissl was entfernt
Kurze Einleitung:
Also ich (eigentlich war es eine Gruppenarbeit) habe aus einer Auffgabenstellung herraus ein Programm geschrieben das diesem Standardbeispiel "Listen" zugeordnet werden kann. Es soll eine Liste erzeugen, Knotenpunkte ablaufen, einfügen, löschen etc pp. Dadurch wurde mein Interesse für C++ geweckt, so dass ich Privat versuche mir etwas mehr beizubringen und mich zurzeit mit dem Thema Modularisierung/Objektorientierte Programmierung beschäftige.
Das Problem:
Das Programm habe ich also versucht zu Modularisieren, sprich das Programm in funktionen und header zu zerlegen. Im großen und ganzen klappt das auch, nur das ich irgendwann beim Kompilieren die Meldung "multiple defination of..." erhielt. Diese Fehlermeldung konnte ich abschalten, nun stürtzt das Programm nach geringer Zeit ab, was mich langsam zur Verzweiflung bringt, da auch eine Fehlersuche keine Ergebnisse bringt.
Darum bitte ich das sich das Programm mal jemand anschaut und mir Hilfestellung geben kann.(Programm ist als .dev-Projekt geschrieben)
ListenMain.cpp: // Main
Code:
#include <stdio.h>
#include <stdlib.h>
#include "ListenHead.h"
//#include "listen_l.h"
//struct Listenknoten *l_kopf=NULL; //Listenkopf erzeugen(1.2.1)
//struct Listenknoten *l_ende=NULL;
int main(int argc, char* argv[]) //Main mit Parameterübergabe
{
struct Listenknoten *l_kopf=NULL; //Listenkopf erzeugen(1.2.1)
struct Listenknoten *l_ende=NULL; //Listenende
l_kopf=new Listenknoten();
l_kopf->l_next=NULL;
l_ende=new Listenknoten();
l_ende->l_next=NULL;;
}
ListenFkt.cpp // Funktionen
Code:
#include <stdio.h>
#include "ListenHead.h"
#include "listen_l.h"
//------------------------------------------------------------------------------// 1. addFirtst()
void addFirst(int inhalt) // fügt einen Knoten am Anfang der Liste an
{
//Inhalt der "Funktion"
}
////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------// 2. getFirtst()
int getFirst() // gibt den Inhalt des ersten Knotens zurück
{
//Inhalt der "Funktion"
}
////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------// 3. removeFirtst()
int removeFirst() // entfernt den ersten Knoten UND setzt den Zeiger des Listenkopfes auf den Nachfolger
{
//Inhalt der "Funktion"
}
////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------// 5. getLast()
int getLast() // gibt den Inhalt des letzten Knotens zurück
{
//Inhalt der "Funktion"
}
////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------// 6. removeLast()
int removeLast() // entfernt den letzten Knoten UND setzt den Zeiger des VORLETZTEN Knotens auf NULL
{ // Aufwand O(n), weil er alle Knoten durchlaufen muss und sich den VORLETZTEN Knoten merken muss <=> bei einfachverketteten Listen
}
////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------// 7. removeDVListe()
int removeDVListe()
{
return 0;
}
////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------// 9.
void insert(int inhalt) // durchläuft die Liste von hinten und fügt neuen Knoten vor nächst kleinerem Element ein
{
struct Listenknoten * tmp_listenknoten=new Listenknoten();
tmp_listenknoten->l_inhalt=inhalt; //den übergebenen Inhalt in einen neuen Knoten gespeichert
tmp_listenknoten->l_next=NULL;
if(l_kopf->l_next==NULL)
{
l_kopf->l_next=tmp_listenknoten;
l_ende->l_next=tmp_listenknoten;
}else
{
struct Listenknoten * letzter_knoten=new Listenknoten(); //temporärer Speicherplatz zum austauschen
letzter_knoten=l_kopf->l_next;
while(letzter_knoten->l_next!=NULL && letzter_knoten->l_next->l_inhalt<inhalt)
{
letzter_knoten=letzter_knoten->l_next;
}
tmp_listenknoten->l_next=letzter_knoten->l_next;
letzter_knoten->l_next=tmp_listenknoten;
}
}
ListenHead.h // sollte eigentlich einzige Header sein, durch "multple..." Problem und anderen Erfahrungen das "Problemkind" "ausgelagert"
Code:
// Variablendeklaration
void addFirst(int);
int getFirst();
int removeFirst();
void addLast(int);
int getLast();
int removeLast();
void insert(int);
void printOutListe();
// Struct
struct Listenknoten //Typdefinition eines Listenelementes mit Inhalt, Verweis auf benachbarte Elemente
{
int l_inhalt; //Listeninhalt vom Typ Integer
struct Listenknoten * l_next; //Verweis (Referrenz/Pointer) auf das nachfolgende Listenelement
};
// Problemkind; Diese beiden erzeugen da sie in der fkt.cpp und in der main verwendet werden die "multiple declaration"
// struct Listenknoten *l_kopf=NULL; //Listenkopf erzeugen(1.2.1)
// struct Listenknoten *l_ende=NULL;
listen_l.h // Hilfsheader--> "multiple...."-Problem
Code:
struct Listenknoten *l_kopf; //Listenkopf erzeugen(1.2.1)
struct Listenknoten *l_ende; //Listenende
Ich verwende den DevCompiler Version 4.9.9.2, das Programm ist so wie es ist die "Absturz"-Variante. Lässt sich aber ohne Fehler Kompilieren
Mit freundlichen Grüßen
Docci
edit: bissl was entfernt
Zuletzt bearbeitet: