Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Zugriff auf vererbte Methode nicht möglich

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 <
000
15.06.2004, 18:27 Uhr
~Gast
Gast


Hallo,
ich versuch mich gerade am Polymorphismus. Hier meine 3 Klassen:

C++:
#include <iostream>
using namespace std;
class CA
{
public:
CA()
{
}

void Klassentyp()
{
  cout<<"A";
}

void WasBinIch()
{
  cout<<"Ich bin Klasse: ";
  Klassentyp();
}
};

class CB:CA
{
public:
CB()
{
}

void Klassentyp()
{
  cout<<"B";
}
};

class CC:CA
{
public:
CC()
{
}

void Klassentyp()
{
  cout<<"C";
}
};



Ich versuche auf Klasse B und C zuzugreifen:

C++:
CB KlasseB;
CC KlasseC;
KlasseB.WasBinIch();
cout<<"\n";
KlasseC.WasBinIch();


Ich erhalte aber als Fehlermeldung das ich auf CA::WasBinIch() nicht zugreifen kann. Weiß jemand was ich ändern muss?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.06.2004, 18:58 Uhr
0xdeadbeef
Gott
(Operator)



C++:
//...
class CB : public CA
//...
class CC : public CA
//...


Im übrigen würde ich Klassentyp virtual deklarieren.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 15.06.2004 um 18:59 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.06.2004, 19:18 Uhr
~Gast
Gast


Danke für die Tipps es funktioniert nun.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.06.2004, 23:19 Uhr
virtual
Sexiest Bit alive
(Operator)


Aber wohl nur halb, denn probier mal:

C++:
CA* KlasseB = new CB;
CA* KlasseC = new CC;
KlasseB->WasBinIch();
cout<<"\n";
KlasseC->WasBinIch();


Vergleiche das mal mit dem orginal und dann laß es mal mit folgender CA deklaration laufen:

C++:
class CA
{
public:
CA()
{
}

[b]virtual[/b] void Klassentyp()
{
  cout<<"A";
}
};


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 15.06.2004 um 23:20 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


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: