Frage zur Erstellung von mehreren Objekten



  • Hallo Community,

    ich gehe gerade einige Altklausuren durch und ich verstehe einige Zeilen in der main() nicht.

    Es werden in der main() mehrere Objekte erstellt.

    Ich habe etwas in diversen Büchern nachgelesen doch mir ist immer noch nicht klar, warum man mehrere Objekte erstellt. Reicht denn ein einziges nicht aus ?

    Kann mir vllt. jemand auch von funktion zu funktion in kurzen kommentaren sagen was die einzelnen funktionen überhaupt machen. Ich blick bei diesem code irgendwie nicht durch.

    class matrix
    {
    public : 
            matrix();
            void print_matrix();
            void print_vector();
            void ml();
    private:
            int mat [3][4];
            int vek [3];
    } ; 
    ---------------------------------------------------
    
    #include "matrix.h"
    
    void matrix::print_vector()
    {
       cout << "  "<<endl;
       for (int i=0; i<3;i++)
       { 
          cout << "  " << vek[i] << "  "; 
       }
       cout << "  " << endl; 
    }
    
    matrix::matrix() 
    {
           static int zaehl= -20; 
           for (int i=0; i<3;i++)
           {
                for (int j=0;j<4;j++)
                { 
                      mat [i][j]= zaehl; 
                      zaehl++;
                }
                vek [i] =0; 
           }
    }
    
    void matrix::ml(void) 
    {
             static int x=1; 
             int k,l;
             for (int i=0;i<3;i++)
             {
                  k=999; 
                  l=-999;
                 for ( int j=0; j<4; j++)
             {
                  if (x % 2) 
                  {if (mat [i][j] <k)
                      { vek[i] = mat [i][j];
                           k= vek[i];
                      }
                  }
                  else {
                    if  (mat [i][j]>1)
                       { vek [i]= mat [i][j];
                              k=vek[i];
                       }
                  }
             }
        }
         x++;
    }
    
    -----------------------------------------------------------
    #include "matrix.h"
    
    int main () 
    {           matrix freud1; 
                matrix freud2; 
                matrix freud3; 
    
                freud1.ml();
                freud2.ml();
                freud3.ml();
    
                freud1.print_vector();
                freud2.print_vector();
                freud3.print_vector();
    
    }
    


  • vatan89 schrieb:

    Kann mir vllt. jemand auch von funktion zu funktion in kurzen kommentaren sagen was die einzelnen funktionen überhaupt machen. Ich blick bei diesem code irgendwie nicht durch.

    Ich denke nicht, dass das sinnvoll ist.
    Du schreibst selbst, dass Du schon einiges gelesen hast - dann ist jetzt wohl der Zeitpunkt gekommen, selbst Hand anzulegen.

    Welche Stelle durchblickst Du nicht? Probier den Code aus, baue Testausgaben ein und schau, was passiert.
    Implementier matrix::print_matrix() .
    Was war nochmal die Bedeutung von static ?

    Schraub die Warnungen in Deinem Compiler hoch: gibt es Warnungen? Kompiliert der Code überhaupt?

    Warum steht in der Definition matrix::m1(void) " void " in der Klammer? Ist das nötig? Ist das üblich in C++?

    Noch als Bonusfrage: ist matrix::m1() kopiert oder abgetippt? und welche Probleme ergeben sich u.U. aus der Ähnlichkeit von l (ell) und 1 (eins) für Programmcodes?

    vatan89 schrieb:

    Ich habe etwas in diversen Büchern nachgelesen doch mir ist immer noch nicht klar, warum man mehrere Objekte erstellt. Reicht denn ein einziges nicht aus ?

    Dir fehlt die grundlegende Unterscheidung von Klasse und Objekt.
    Schreib doch mal eine Klasse für Mitglieder in einem Online Forum - gespeichert werden soll in jedem Objekt der Nickname und die Anzahl der Posts.
    Dann erstell für zwei Nutzer die Objekte und sag mir, wie Du das mit nur einem Objekt machen willst.


Anmelden zum Antworten