[C++] Klassen

  • Ersteller Ersteller can320
  • Erstellt am Erstellt am
C

can320

Gast
Wie kann man ein Klassenobjekt mit einem Index erstellen? Bisher mache ich das so:

CTest Person1(1,2,3,4), Person2(1,2,3,4);

Da ich aber mehr als eine Person habe brauche ich wie bei einem Array einen Index z.B. Person[5], damit ich später den Inhalt der Objekte innerhalb einer Schleife einfacher miteinander vergleichen kann. Hab schon alle möglichen Kombinationen aus "(" "{" und "=" ausprobiert. :freak:
 
Versuchs mal auf diese Weise:

Code:
CTest B[4] = { CTest(1,1),
                     CTest(2,2),
                     CTest(3,3),
                     CTest(4,4)};

//edit
So sieht mein ganzer Code aus:
Code:
#include <iostream.h>
#include <windows.h>

class CTest {
      public:
              int x, y; 
              CTest(int a, int b) {
                  x = a;
                  y = b;
              }
};

int main()
{
     CTest B[4] = { CTest(1,1), 
                    CTest(2,2), 
                    CTest(3,3), 
                    CTest(4,4)};
                    
     for(int i=0;i<4;i++) {
             cout << B[i].x << " " << B[i].y << endl;
     }
    cin.get();
    cin.get();
    return 0;
}

Mfg
KoЯn
 
Zuletzt bearbeitet:
Hallo can320,

Mal als Vorschlag zusätzlich ein Vergleichsoperator:

Code:
int operator==(const CTest& right)
{
  return( x == right.x && y == right.y);
}

und das ganze in eine STL Liste packen:

Code:
#include <list>

std::list<CTest> lListOfPersons;

//Element in Liste packen:

lListofPersons.push_back(CTest(1,2));
lListofPersons.push_back(CTest(3,4));
lListofPersons.push_back(CTest(5,6));

//Elemente suchen:

CTest lComparePerson(3,4);
std::list<CTest>::iterator lItem = lListOfPersons.begin();

while( lItem != lListOfPersons.end() )
{
   if( *lItem == lComparePerson)
   {
       // gefunden
       cout << *lItem << " gefunden" << endl;
       break;
   }
   lItem++;
}
 
Zuletzt bearbeitet:
Zurück
Oben