Forum: PC-Programmierung Problem mit Vererbung


von Stefan L. (Gast)


Lesenswert?

Liebe C++ Könner!

Ich habe da ein Problem.

Ich habe ein kleines Programm geschrieben, welches die Fläche eines 
T-Trägers ausrechnen soll. Allerdings gibt es Probleme bei der 
Vererbung.

Ich habe in der letzten Zeile meines Codes keinen Zugriff auf eine 
Mehtode in meiner Abgeleiteten Klasse.

Könnt ihr mir vielleicht helfen?

Was mache ich falsch?
1
#include <stdio.h>
2
3
class DTT_GEO
4
{
5
  //protected:
6
  public:
7
      int b;
8
      int h;
9
      int d;
10
      int laenge;
11
      int q_flaeche;
12
13
    
14
      void eingabe_breite(void);
15
      void eingabe_hoehe(void);
16
      void eingabe_dicke(void);
17
      void eingabe_laenge(void);
18
19
      void ausgabe_breite(void);
20
      void ausgabe_hoehe(void);
21
      void ausgabe_dicke(void);
22
      void ausgabe_laenge(void);
23
      void ausgabe_querschnittsflaeche(void);
24
      void ausgabe_volumen(void);
25
};
26
27
28
class DTT_MAT:public DTT_GEO
29
{
30
  private:
31
      int artgewicht;
32
      int gewicht;
33
34
  public:
35
      void eingabe_gewicht(void);
36
      void eingabe_artgewicht(void);
37
      
38
      void ausgabe_gewicht(void);
39
      void ausgabe_artgewicht(void);
40
  
41
42
};
43
44
void DTT_GEO::eingabe_breite(void) {scanf("%d",&b);}
45
void DTT_GEO::eingabe_hoehe(void) {scanf("%d",&h);}
46
void DTT_GEO::eingabe_dicke(void) {scanf("%d",&d);}
47
void DTT_GEO::eingabe_laenge(void) {scanf("%d",&laenge);}
48
void DTT_MAT::eingabe_artgewicht(void) {scanf("%d",&artgewicht);}
49
void DTT_MAT::eingabe_gewicht(void) {scanf("%d",&gewicht);}
50
51
void DTT_GEO::ausgabe_breite(void) {printf("%d",b);}
52
void DTT_GEO::ausgabe_hoehe(void) {printf("%d",h);}
53
void DTT_GEO::ausgabe_dicke(void) {printf("%d",d);}
54
void DTT_GEO::ausgabe_laenge(void) {printf("%d",laenge);}
55
void DTT_MAT::ausgabe_artgewicht(void) {printf("%d",artgewicht);}
56
void DTT_MAT::ausgabe_gewicht(void) {printf("%d",gewicht);}
57
58
int main (void)
59
{
60
    DTT_GEO Werte;
61
62
    printf("Geben Sie bitte die Daten fuer einen Doppel-T-Traeger an:\n");
63
    printf("Fußbreite:\t\t");
64
    Werte.eingabe_breite();
65
    printf("\nHoehe:\t\t");
66
    Werte.eingabe_hoehe();
67
    printf("\nMaterialdicke:\t\t");
68
    Werte.eingabe_dicke();
69
    printf("\nLaenge:\t\t");
70
    Werte.eingabe_laenge();
71
    printf("\nArtgewicht:\t\t");
72
    Werte.eingabe_artgewicht();
73
74
    printf("\n\nDer Doppel-T-Traeger hat folgende geometrische Daten\n");
75
    printf("---------------------------------------------------------------\n");
76
    printf("\nBreite des Fußes\t\t:\t\t"); Werte.ausgabe_breite();
77
    printf("\nTraeger Hoehe\t\t:\t\t");Werte.ausgabe_hoehe();
78
    printf("\nMaterialdicke\t\t:\t\t");Werte.eingabe_dicke();
79
    printf("\nLaenge\t\t:\t\t");Werte.ausgabe_laenge();
80
    printf("\nQuerschnittsflaeche\t\t:\t\t");Werte.ausgabe_querschnittsflaeche();
81
    printf("\nVolumen\t\t:\t\t");Werte.ausgabe_volumen();
82
    printf("\n---------------------------------------------------------------\n");
83
    printf("Der Doppel-T-Traeger hat folgende Gewichts-Daten:\n");
84
    printf("\n---------------------------------------------------------------\n");
85
    printf("Artgewicht\t:\t"); Werte.ausgabe_artgewicht();                //Warum kein Zugriff auf abgeleitete Klasse?
86
87
    
88
    
89
    
90
   
91
}




Danke!

Gruß
Stefan

von Kalli L. (knl)


Lesenswert?

Stefan L. schrieb:
> int main (void)
> {
>     DTT_GEO Werte;
>
>     printf("Geben Sie bitte die Daten fuer einen Doppel-T-Traeger an:\n");

sollte das nicht
int main (void)
{
    DTT_MAT Werte;

    printf("Geben Sie bitte die Daten fuer einen Doppel-T-Traeger 
an:\n");

heissen? Oder die Klassen andersrum ableiten?

von Karl H. (kbuchegg)


Lesenswert?

Stefan L. schrieb:

> int main (void)
> {
>     DTT_GEO Werte;

....


>     printf("Artgewicht\t:\t"); Werte.ausgabe_artgewicht();
> //Warum kein Zugriff auf abgeleitete Klasse?

Ein DTT_GEO Objekt hat diese Methode nicht.

Ein DTT_MAT Objekt hätte sie. Aber DTT_GEO nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.