array mit classen-parameter



  • hab ein kleines problem
    mit der deklairung einers arrays
    in der man parameter eingeben muss

    class My{
    int x,y;
    public:
    My(int,int);
    }; 
    
    My::My(int x2,int y2){x=x2; y=y2;}
    
    class My2(){
     My array[10];
     My2(int,int);
    };
    My2::My2(int x2,int y2): //und wie soll ich jetzt den array deklariren
         {}
    


  • Mein Tip: Schmeiß das C-Array raus, verwende einen C++-Typ. In jedem Fall kannst Du die Array-Elemente aber nicht ohne Schleife initialisieren. Die Initialisierungsliste bringt Dich hier also nicht weit.



  • deklariert hast du das Array doch bereits - du mußt es jetzt nur noch füllen. Und das geht zur Not auch im Ctor-Rumpf mit einer Schleife (ja, C++ Initialisierungslisten arbeiten nicht besonders gut mit Arrays):

    My2::My2(int x1,int x2)
    {
      for(int i=0;i<10;++i)
        array[i]=My(x1,x2);
    }
    

    Die bessere Lösung wäre es, statt des Arrays einen vector<> zu verwenden:

    class My2
    {
      vector<My> array;
    public:
      My2(int x1,int x2) : array(10,My(x1,x2)) {}
    };
    


  • ok thx klappt alles


Log in to reply