Fragen zu einem kleinen Programm



  • Hallo mir sind ein paar Zeilen und ihre genau Funktion im Programm nicht klar. Also ich weiss nicht was da passiert.

    Bitte ganz einfach gehaltene Erklärungen zu meinen Fragen 🙂

    //bsp10051
    #ifndef _FLAECHE_
    #define _FLAECHE_
    
    class Flaeche {
        public:
            Flaeche(char *n);    //???????
            ~Flaeche();
            void getFarbe() const;
        private:
            char farbe[11];
        };
    
    #endif    
    
    #include <iostream>
    #include <cstring>
    #include "Flaeche.h"
    using namespace std;
    
    Flaeche::Flaeche(char *n) {   //??????
        strncpy (farbe,n,10);
    }
    
    Flaeche::~Flaeche() {
    }
    
    void Flaeche::getFarbe() const {
        cout<<"\n"<<farbe;
    }
    

    Was bewirkt des char *n? Ich werde da einfach net schlau draus 😕

    Hier nochmal ein anderes Bespiel mit dem selben code

    #ifndef _GRUNDSTUECK_
    #define _GRUNDSTUECK_
    
    class Grundstueck {
        private:
            char gemarkung[30];
            int flur,flurstueck, groesse;
        public:
            Grundstueck();  //Konstruktor
            ~Grundstueck(); //Dekonstruktor
            void speichereGrunddaten (const char *n,
            int f, int st, int g);
            void zeigeGrunddaten() const;
        protected:
            float sachwert;
    
        };
    
    #endif
    
    include <iostream>
    #include <cstring>
    #include "Grundstueck.h"
    using namespace std;
    
    Grundstueck::Grundstueck() {
    }
    Grundstueck::~Grundstueck() {
    }
    
    void Grundstueck::speichereGrunddaten(const char *n,
                int f, int st, int g) {
    strncpy(gemarkung, n,29);
    flur=f;
    flurstueck=st;
    groesse=g;
    sachwert=static_cast<float>(g)*180;   //?????????
    }
    
    void Grundstueck::zeigeGrunddaten() const {
        cout<<"\n" <<"Gemarkung: "<<gemarkung<<"\n"
            <<"Flur:       "<<flur<<"\n"
            <<"Flurstueck: "<<flurstueck<<"\n"
            <<"Groesse:    "<<groesse<<"\n"
            <<"Sachwert:   "<<sachwert;
        }
    

    Und was passiert genau in dieser Zeile

    sachwert=static_cast<float>(g)*180;   //?????????
    


  • //bsp10051
    #ifndef _FLAECHE_
    #define _FLAECHE_
    
    class Flaeche {
        public:
            Flaeche(char *n);    //Zeiger auf char -> Zeichenfolge in C, abgeschlossen mit '\0'
            ~Flaeche();
            void getFarbe() const;
        private:
            char farbe[11];
        };
    
    #endif    
    
    #include <iostream>
    #include <cstring>
    #include "Flaeche.h"
    using namespace std;
    
    Flaeche::Flaeche(char *n) {   //dito
        strncpy (farbe,n,10);
    }
    
    Flaeche::~Flaeche() {
    }
    
    void Flaeche::getFarbe() const {
        cout<<"\n"<<farbe;
    }
    
    #ifndef _GRUNDSTUECK_
    #define _GRUNDSTUECK_
    
    class Grundstueck {
        private:
            char gemarkung[30];
            int flur,flurstueck, groesse;
        public:
            Grundstueck();  //Konstruktor
            ~Grundstueck(); //Dekonstruktor
            void speichereGrunddaten (const char *n,
            int f, int st, int g);
            void zeigeGrunddaten() const;
        protected:
            float sachwert;
    
        };
    
    #endif
    
    include <iostream>
    #include <cstring>
    #include "Grundstueck.h"
    using namespace std;
    
    Grundstueck::Grundstueck() {
    }
    Grundstueck::~Grundstueck() {
    }
    
    void Grundstueck::speichereGrunddaten(const char *n,
                int f, int st, int g) {
    strncpy(gemarkung, n,29);
    flur=f;
    flurstueck=st;
    groesse=g;
    sachwert=static_cast<float>(g)*180;   //g zu einem float casten und dann mit 180 multiplizieren
    }
    
    void Grundstueck::zeigeGrunddaten() const {
        cout<<"\n" <<"Gemarkung: "<<gemarkung<<"\n"
            <<"Flur:       "<<flur<<"\n"
            <<"Flurstueck: "<<flurstueck<<"\n"
            <<"Groesse:    "<<groesse<<"\n"
            <<"Sachwert:   "<<sachwert;
        }
    

Anmelden zum Antworten