Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

Problem mit Vererbung in c++

Diskussion: Problem mit Vererbung in c++ im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Guten morgen an alle ! Ich habe gerade ein Problem mit der Vererbung in c++... Vielmehr ein problem mit ...

Antwort
Alt 04.01.12, 10:22   #1 (permalink)
 
Registriert seit: 23.08.11
Old_Pirate Leistung: Facit NTK
Likes: 0
Standard Problem mit Vererbung in c++

Anzeige

Guten morgen an alle !

Ich habe gerade ein Problem mit der Vererbung in c++... Vielmehr ein problem mit Visual Studio 2010. Also ich erstelle eine Klasse Person und Mitarbeiter in zwei cpp datein:

Code:
class person
{
      int hausnummer;
      string name;
}
Code:
class mitarbeiter : public person
{
       
}
Die klasse mitarbeiter soll hiebei eine Ableitung von Person sein.

Nun ist das Problem das mir Visual Studio sagt die Klasse Person wäre nicht bekannt.
Sie ist gespeichert sie liegt im gleichen projekt usw weiß einfach nicht was ich noch machen soll ?? wenn ich die klassen untereinander in einer Datei definiere Funktioniert es allerdings möchte ich jede Klasse in einer eigenen Datei muss ich dann die Basisklasse als Header einbinden ? Hab schon gegoogelt aber man findet immer wieder die gleichen Beispiele nirgends ist die Basisklasse als Header eingebunden.
oder ist das ein Problem von Visual studio 2010 nutze Ultimate??

Vielen Dank im Vorraus
Old_Pirate ist offline   Mit Zitat antworten
Alt 04.01.12, 12:43   #2 (permalink)
 
Registriert seit: 04.11.07
Prophion Leistung: Facit NTK
Prophion eine Nachricht über ICQ schicken
Likes: 0
Standard

Wenn du die Klassen in mehreren headerdateien speicherst musst du die benötigte Datei immer inkludieren.

Sent from my OMNIA7 using Board Express
Prophion ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 04.01.12, 12:49   #3 (permalink)
 
Benutzerbild von benediktibk
 
Registriert seit: 03.05.07
benediktibk Leistung: 8086benediktibk Leistung: 8086
Likes: 50
Standard

fileOne.h:
Code:
class foo
{ };
fileTwo.h
Code:
#include "fileOne.h"
class bar : public foo
{ };
mfg benediktibk
benediktibk ist offline   Mit Zitat antworten
Alt 04.01.12, 15:04   #4 (permalink)
Themenstarter
 
Registriert seit: 23.08.11
Old_Pirate Leistung: Facit NTK
Likes: 0
Standard

Hallo benediktibk und Prophion !

Danke für eure Antworten... War mir etwas unsicher weil ich wirklich kein einziges beispiel gefunden hatte in dem die Basisklasse als header includet ist.

Jedoch habe ich nun ein anderes Problem ich habe nun eine abstracte Klasse Figur erstellt :

Code:
#ifndef fig
#define fig
class figur
{
   public:
   virtual double umfang()const=0;

};

#endif
davon hab ich nun eine Ableitung gemacht rechteckt
Code:
#ifndef recht
#define recht
#include "figur.h"

class rechteck : public figur
{
    double a,b;
   public:

     rechteck(double l, double h)
    {
       a=l;
       b=h;
       

    }
     double flaeche()const
     {
          return a*b;
     }

}
#endif
so das ganze sind header files und sind beide in einer main test includet

Code:
#include "figur.h"
#include"rechteck.h"

void bla(figur* f)
{
    cout<<"Fläche"<<f->flaeche()<<endl;
}

int main()
{
    rechteck r1(4.0,8.0);
    bla(r1);
}
Der sinn dabei ist folgendes durch das schlüssel wort virtual kann ich nun irgenetwas vom typ figur in die methode geben (kreis, rechteck, dreieck, zylinder... im mom ist nur rechteck implementiert) und es wird automatisch die richtige Methode flaeche () aufgerufen ohne das ich dies eyplizit angeben muss.

Das Problem ist nur das mir ständig der Fehler "keine passende konvertierungsfunktion von rechteck zu figur " ausgegeben wird aber? Aber die brauch ich doch gar nicht da rechteck doch auch eine Figur ist habe das ganze auch schon mit zeigern probiert also :

Code:
figur* f = r1;
das funktioniert auch nicht und soweit ich im inet gelesen hab dürfen abstrakte klassen nicht explizit in konvertierungen vorkommen... Also was muss ich tun ?

Danke im Vorraus
Old_Pirate ist offline   Mit Zitat antworten
Alt 04.01.12, 16:00   #5 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Ist statt
Code:
   public:
   virtual double umfang()const=0;
nicht virtual double flaeche gemeint?
Sonst ergibt das keinen Sinn (Klasse figure hat
keine Methode flaeche() (wie soll der Compiler das auflösen?), außerdem erben die anderen Klassen damit eine
"pure virtual" Methode und sollten (aller Logik nach, denn
ein spezielles Nachschlagewerk für C++ ist bei mir gerade nicht
zur Hand ) auch abstrakt sein.

PS:
bla(&r1)
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Alt 04.01.12, 16:27   #6 (permalink)
Themenstarter
 
Registriert seit: 23.08.11
Old_Pirate Leistung: Facit NTK
Likes: 0
Standard

Hallo CDW!

Ja das stimmt das müsste flache() heißen habe ich mich verschrieben weil ich den code abgeschrieben habe und nicht kopiert

sorry!

Danke bla(&r1) funzt ... wegen diesem "&" bin ich fast verzweifelt
Old_Pirate ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Problem mit Vererbung in c++
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Probleme bei Vererbung in Python BlackPanter Code Kitchen 6 04.09.10 20:59
PHP problem mit vererbung und interface b4ck (Web-) Design und webbasierte Sprachen 6 15.02.10 15:14
C++ Vererbung| Kompiler Fehlermeldung prEs Code Kitchen 4 03.10.09 22:46
Vererbung C++ Dawen Code Kitchen 8 19.09.06 18:38
Vererbung in C++ ?? AlanBraxe Code Kitchen 5 28.01.02 16:38


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61