Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Falscher rückgabetyp?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
22.03.2008, 12:07 Uhr
~Fingolin
Gast


Also hallo erstmal....
ich bin gerade in der entwicklung eines Programmes,dass den kürzesten Weg finden soll.
Bis jetzt sollte das Programm noch nicht viel können nur eben die Daten eingabe...
wie gesagt es ist noch in der Entwicklung aber ich habe jetzt schon einige Probleme,die ich nicht verstehe.Ich habe noch nicht allzuviel erfahrung mit c++bin noch ein Lernender.
Hier mein code:

main.cpp:



C++:
#include <iostream>

using namespace std;
#include "Strecke.hpp"



int main()
{
    int AnzahlStrecken;
    Strecke *pAnzahlStrecken;
    cout << "Bitte geben sie die Anzahl der Strecken an!: ";
    cin >> AnzahlStrecken;
    pAnzahlStrecken=new Strecke[AnzahlStrecke];
    

    delete pAnzahlStrecken;
    return 0;
}





Strecke.hpp



Code:
class Strecke
{
private:
    char Anfangspunkt_Name[20];
    char Endpunkt_Name[20];
    int Anfangspunkt_Nummer;
    int Endpunkt_Nummer;
    int Laenge;
    void DatenAnzeigen();
    void DatenEingeben();
}



Strecke.cpp


C++:
#include "Strecke.hpp"
#include <iostream>


using namespace std;

void Strecke::DatenAnzeigen()
{
    cout << "Anfangspunkt: ";                                    //Ausgabe des Anfangpunktes
        for (int i=0;i<20;i++)
        {
            cout << Anfangspunkt_Name[i];
        }

    cout << endl;                                                //Ende der Ausgabe des Anfangpunktes

    cout << "Endpunkt: ";                                        //Ausgabe des Endpunktes
        for (int j=0;j<20;j++)
        {
            cout << Endpunkt_Name[j];
        }
    cout << endl;                                                //Ende der Ausgabe des Endpunktes


    cout << "Abstand zwischen den Punkten: " << Laenge << endl; //Ausgabe des Abstandes


};



void Strecke::DatenEingeben()
{
    cout << "Bitte geben sie den Namen des Anfangspunktes ein! ";
    cin.get(Anfangspunkt_Name,19);
    cout << endl;

    cout << "Bitte geben sie den Namen des Endpunktes ein! ";
    cin.get(Endpunkt_Name,19);
    cout << endl;

    cout << "Bitte geben sie den Abstand der beiden Punkte an! ";
    cin >> Laenge;
    cout << endl;

};



Code:
und hier meine Fehlermeldungen:


c:\Programme\Microsoft Visual Studio .NET 2003\Vc7\include\yvals.h(116) : error C2143: Syntaxfehler: Es fehlt ';' vor 'namespace'
main.cpp


c:\Dokumente und Einstellungen\jkempkes\Eigene Dateien\Visual Studio Projects\Belman.Ford\main.cpp(8) : error C2628: 'Strecke' gefolgt von 'int' unzulässig (Semikolon ';' vergessen?)


c:\Dokumente und Einstellungen\jkempkes\Eigene Dateien\Visual Studio Projects\Belman.Ford\main.cpp(9) : warning C4326: Der Rückgabetyp von 'main' sollte 'int oder void' anstatt von 'Strecke' sein


c:\Dokumente und Einstellungen\jkempkes\Eigene Dateien\Visual Studio Projects\Belman.Ford\main.cpp(18) : error C2664: 'Strecke::Strecke(const Strecke &)': Konvertierung des Parameters 1 von 'int' in 'const Strecke &' nicht möglich
        Ursache: Konvertierung von 'int' in 'const Strecke' nicht möglich
        Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Überladungsauflösung des Konstruktors ist mehrdeutig


c:\Dokumente und Einstellungen\jkempkes\Eigene Dateien\Visual Studio Projects\Belman.Ford\main.cpp(18) : error C2553: Unzulässige Konvertierung von Rückgabewert in Rückgabetyp 'Strecke'




Also ich hoffe ihr wisst weiter weil ich bin echt am Ende
Danke schonmal für eure Antworten.
MfG
Fingolin
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.03.2008, 13:42 Uhr
Tommix



Hallo,
wie die Fehlermeldungen eigentlich klar sagen, fehlt in Strecke.hpp das abschließende Semikolon. Was mir auf die Schnelle auch noch auffällt, es muß

C++:
delete[] pAnzahlStrecken;


heißen.

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.03.2008, 16:21 Uhr
~Fingolin
Gast


*handvorKopfschlag* danke xD
habs geändert und es sieht jetzt so aus:

main.cpp:



C++:

#include <iostream>

using namespace std;
#include "Strecke.hpp"



int main()
{
    int AnzahlStrecken;
    Strecke *pAnzahlStrecken;
    cout << "Bitte geben sie die Anzahl der Strecken an!: ";
    cin >> AnzahlStrecken;
    pAnzahlStrecken=new Strecke[AnzahlStrecke];
    

    delete[] pAnzahlStrecken;
    return 0;
}




Strecke.hpp:

Code:
class Strecke
{
private:
    char Anfangspunkt_Name[20];
    char Endpunkt_Name[20];
    int Anfangspunkt_Nummer;
    int Endpunkt_Nummer;
    int Laenge;
    void DatenAnzeigen();
    void DatenEingeben();
};



Strecke.cpp:


C++:
#include "Strecke.hpp"
#include <iostream>


using namespace std;

void Strecke::DatenAnzeigen()
{
    cout << "Anfangspunkt: ";                                    //Ausgabe des Anfangpunktes
        for (int i=0;i<20;i++)
        {
            cout << Anfangspunkt_Name[i];
        }

    cout << endl;                                                //Ende der Ausgabe des Anfangpunktes

    cout << "Endpunkt: ";                                        //Ausgabe des Endpunktes
        for (int j=0;j<20;j++)
        {
            cout << Endpunkt_Name[j];
        }
    cout << endl;                                                //Ende der Ausgabe des Endpunktes


    cout << "Abstand zwischen den Punkten: " << Laenge << endl; //Ausgabe des Abstandes


};



void Strecke::DatenEingeben()
{
    cout << "Bitte geben sie den Namen des Anfangspunktes ein! ";
    cin.get(Anfangspunkt_Name,19);
    cout << endl;

    cout << "Bitte geben sie den Namen des Endpunktes ein! ";
    cin.get(Endpunkt_Name,19);
    cout << endl;

    cout << "Bitte geben sie den Abstand der beiden Punkte an! ";
    cin >> Laenge;
    cout << endl;

};





habe noch den einen Fehler:
cDokumente und Einstellungen\jkempkes\Eigene Dateien\Visual Studio Projects\Belman.Ford\main.cpp(14) : error C2065: 'AnzahlStrecke': nichtdeklarierter Bezeichner

den pointer habe ich doch richtig deklariert oder?.
mfg
Fingolin
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.03.2008, 16:25 Uhr
Tommix



pAnzahlStrecken=new Strecke[AnzahlStrecken];
- Tommix

Dieser Post wurde am 22.03.2008 um 16:25 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
22.03.2008, 16:27 Uhr
~Fingolin
Gast


Oh Mann xD
danke danke danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.03.2008, 16:19 Uhr
~Fingolin
Gast


Äh nochmal Hallo...
also Theoretisch ist die Dateneingabe fertig aber ich hab da noch ein Problem einen Link error und da hab ich keinen Anhaltspunkt...:

Code:
Strecke.obj : error LNK2019: Nicht aufgelöstes externes Symbol '"public: __thiscall Strecke::Strecke(void)" (??0Strecke@@QAE@XZ)', verwiesen in Funktion '"void __cdecl GetDaten(void)" (?GetDaten@@YAXXZ)'
Debug/Belman.Ford.exe : fatal error LNK1120: 1 unaufgelöste externe Verweise



und mein Code sieht zur Zeit so aus:

main.cpp:

C++:
#include <iostream>

using namespace std;
#include "Strecke.hpp"




int main()
{
    GetDaten();

    return 0;
}




Strecke.hpp



Code:
class Strecke
{

public:
    char Anfangspunkt_Name[20];
    char Endpunkt_Name[20];
    void Anfangspunkt_Anzeigen();
    void Endpunkt_Anzeigen();
    int Laenge;
    int Anfangspunkt_Nummer;
    int Endpunkt_Nummer;
    Strecke();
};
class Char
{
public:
    char Name[20];
    void getname();
    char returnname(int i);
};

void GetDaten();



Strecke.cpp:


C++:

#include "Strecke.hpp"
#include <iostream>


using namespace std;



void Strecke::Anfangspunkt_Anzeigen()
{
                                    //Ausgabe des Anfangpunktes
        for (int i=0;i<20;i++)
        {
            cout << Anfangspunkt_Name[i];
        }

    cout << endl;                                                



};
void Strecke::Endpunkt_Anzeigen()
{
                                    //Ausgabe des Endpunktes
        for (int i=0;i<20;i++)
        {
            cout << Endpunkt_Name[i];
        }
                                    


};



void Char::getname()
{
    
    cin.ignore();
    cin.get(Name,20);
};

char Char::returnname(int i)
{
    return Name[i];
};
/*#######################################################################################################*/

void GetDaten()
{
    Char *pPunktname=NULL;
    int x;
    int Zaehler=0;
    int AnzahlPunkte;
    int *pPunkte=NULL;
    Strecke *pStrecke=NULL;

//Punkte abfragen
    cout << "Bitte geben sie die Anzahl der Punkte an!: ";
    cin >> AnzahlPunkte;
    cout << endl;
//ende von Punkte abfragen

//Punkte deklarieren
    pPunkte=new int[AnzahlPunkte];
//Strecken deklarieren
    pStrecke=new Strecke[(AnzahlPunkte*AnzahlPunkte)/2];
//Punktnamen deklarieren
    pPunktname=new Char [AnzahlPunkte];



//Punktnamen eingeben
    for (int i=0;i<AnzahlPunkte;i++)
    {
        cout << " Bitte geben sie den Namen des " << i+1 << " . Punkt an!"<< endl;
        pPunktname[i].getname();
    }
    


    
//Punkte definieren

    for (int i=0;i<AnzahlPunkte;i++)    
    {
        pPunkte[i]=i;
        
    }
//ende von Punkte definieren


    cout << "Anzahl aller Theoretisch möglichen Verbindungen: " ;
    cout << ((AnzahlPunkte*AnzahlPunkte-AnzahlPunkte)/2) << endl;

//Füllen der Objekte beginnen
    for (int i=AnzahlPunkte; i>0 ;i--)
    {
        for (int j=i-1;j>0;j--)
        {
            for (int k=0;k<20;k++)
            {
                pStrecke[i].Anfangspunkt_Name[k]=pPunktname[i].Name[k];
                pStrecke[j].Endpunkt_Name[k]=pPunktname[j].Name[k];

            }

        cout << "Bitte geben sie die Länge der verbindung von Punkt ";
        pStrecke[i].Anfangspunkt_Anzeigen();
        cout <<" zu Punkt ";
        pStrecke[j].Endpunkt_Anzeigen();
        cout << " an! ";
        
        cin >> pStrecke[Zaehler].Laenge;
        
        cout << endl;
        
        pStrecke[Zaehler].Anfangspunkt_Nummer = i;
        pStrecke[Zaehler].Endpunkt_Nummer = j;
        
        Zaehler++;

        }

    }
//Füllen von Objekten beendet!
Zaehler=0;

for (int i=AnzahlPunkte; i>0 ;i--)
    {
        for (int j=i-1;j>0;j--)
        {
            cout << "Länge von " ;
            pStrecke[i].Anfangspunkt_Anzeigen();
            cout << " zu " ;
            pStrecke[j].Endpunkt_Anzeigen();
            cout<<": "<< pStrecke[Zaehler].Laenge  << endl;
    
        Zaehler++;
        }

    }


    cin >> x;

    
    delete[] pPunkte;
    delete [] pStrecke;
}




also wie gesagt hab ich keinen Anhaltspunkt für den Fehler:

Strecke.obj : error LNK2019: Nicht aufgelöstes externes Symbol '"public: __thiscall Strecke::Strecke(void)" (??0Strecke@@QAE@XZ)', verwiesen in Funktion '"void __cdecl GetDaten(void)" (?GetDaten@@YAXXZ)'
Debug/Belman.Ford.exe : fatal error LNK1120: 1 unaufgelöste externe Verweise

naja danke für eure Hilfe
mfg
Fingolin
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.03.2008, 17:41 Uhr
Tommix



Hallo,
Du hast den Konstruktor zwar in der Definition im Header stehen, aber nicht implementiert:

C++:
Strecke::Strecke()
{
    // ...
}



Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
25.03.2008, 18:11 Uhr
~Fingolin
Gast


Okay danke hatte ich übersehen
also des Programm läuft aber des mit den Namen klappt noch nich so...
<img src="http://www.bilder-space.de/show.php?file=9rWXZfFrHAkQQlf.jpg][IMG]http://www.bilder-space.de/thumb/9rWXZfFrHAkQQlf.jpg">

des is leider nicht die erwünschte ausgabe,meine Frage wäre dann warum^^
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
25.03.2008, 18:14 Uhr
~Fingolin
Gast


www.bilder-space.de/show.php?file=9rWXZfFrHAkQQlf.jpg
sry für doppelpost ^^
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
25.03.2008, 20:05 Uhr
Fingolin



äh das Problem hat sich gelöst ;D es lag in den schleifen
sorry für tripelpost
--
Wenn einer mit Vergnügen zu einer Musik in Reih und Glied marschieren kann, dann hat er sein großes Gehirn nur aus Irrtum bekommen, da für ihn das Rückenmark schon völlig genügen w�rde.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: