Fehler
lima-city → Forum → Programmiersprachen → C/C++ und D
ahnung
angabe
ballbesucher
bedeuten
break
ebenfall
error
fehler
folgendes schreiben
friend
kat
konvertierung
lehrer
meinung
methode
partnerwahl
schueler
stattdessen
unterschied
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hmm kann jetzt noch nix konkretes sagen
poste doch mal den code -
Naja schwer zu sagen, was f?r ne Typumwandlung da hier machst, au?erdem Glaube ich auch das du dich irgendwie "verpointert" hast
-
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 -
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. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage