kostenloser Webspace werbefrei: lima-city


Fehler

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    itchydiemaus

    itchydiemaus hat kostenlosen Webspace.

    Was bedeuted der fehler??

    error C2243: 'Typumwandlung': Konvertierung von 'Schueler *' zu 'Person *' ist bereits vorhanden, aber es kann nicht darauf zugegriffen werden.


    mfg Itchy die Maus
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hmm kann jetzt noch nix konkretes sagen
    poste doch mal den code
  4. Autor dieses Themas

    itchydiemaus

    itchydiemaus hat kostenlosen Webspace.

    nein, der fehler muss doch irgendwas bedeuten hast du keine ahnung?

    mfg Itchy die Maus
  5. Naja schwer zu sagen, was f?r ne Typumwandlung da hier machst, au?erdem Glaube ich auch das du dich irgendwie "verpointert" hast
  6. Autor dieses Themas

    itchydiemaus

    itchydiemaus hat kostenlosen Webspace.

    nagut vielleicht findest ja den fehler..

    #include <iostream>
    #include <string>

    using namespace std;

    class Person
    {
    const char Geschlecht;
    string Name;
    Person *next;
    public:
    virtual void print (void);
    Person (char G,string N,Person*);
    friend void Partnerwahl (Person*);
    };

    void Person::print (void)
    {
    cout<<Name;
    }

    Person::Person (char G, string N, Person *hptr):Geschlecht(G),Name(N),next(hptr){}

    class Schueler:Person
    {
    int KatNr;
    string Klasse;
    public:
    Schueler (char G,string N,string K,int Kat,Person*);
    void print (void);
    };

    void Schueler::print (void)
    {
    Person::print();
    cout << "(" << Klasse << ")";
    }

    Schueler::Schueler (char G, string N,string K, int Kat, Person *hptr):Person(G,N,hptr),Klasse(K),KatNr(Kat){}


    class Lehrer:Person
    {
    string Kurzzeichen;
    public:
    Lehrer (char G,string N,string K,Person*);
    void print (void);
    };

    void Lehrer::print (void)
    {
    Person::print();
    cout << "(" << Kurzzeichen << ")";
    }

    Lehrer::Lehrer (char G, string N, string K, Person *hptr):Person(G,N,hptr),Kurzzeichen(K){}

    void main (void)
    {
    Person *Ballbesucher = NULL;
    char Pa='j',G;
    string N,K;
    int Kat;

    cout << "PersArt Geschlecht Name Kurzzeichen/Klasse KatNr"<<endl;
    cin >> Pa;

    while(Pa != 'n')
    {
    switch (Pa)
    {
    case 's': {
    cin >> G >> N >> K >> Kat;
    Ballbesucher = new Schueler (G,N,K,Kat,Ballbesucher);
    }
    break;
    case 'l': {
    cin >> G >> N >> K;
    Ballbesucher = new Lehrer (G, N, K, Ballbesucher);
    }
    break;
    }
    Ballbesucher->print();
    cout << "Weiter?(j/n):\t";
    cin >> Pa;
    }
    Partnerwahl (Ballbesucher);
    }

    void Partnerwahl (Person *b)
    {
    Person *w = b;
    while (b && w)
    while (b->Geschlecht != 'm') b = b->next;
    while (w->Geschlecht != 'w') w = w->next;
    if (b && w)
    {
    cout << b->Name << "&" << w->Name;
    b = b->next;
    w = w->next;
    }
    }

    mfg Itchy die Maus
  7. 0******a

    Der Fehler m?sste meiner Meinung nach hier liegen:
    class Schueler:Person
    Stattdessen solltest du folgendes schreiben:
    class Schueler: public Person
    Der Unterschied:
    Ohne Angabe von public werden die vererbten Methoden/Eigenschaften automatisch als private vererbt. Das gilt auch f?r den Konstruktor. Es ist dann jedoch kein Zufriff darauf m?glich.
    Bei den anderen abgeleiteten Klassen m?sstest du das dann ebenfalls anpassen.
  8. Autor dieses Themas

    itchydiemaus

    itchydiemaus hat kostenlosen Webspace.

    Ja danke das wars..

    mfg Itchy die Maus
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!