Hallo,
ich habe folgendes Problem:
Habe eine Klasse:
Wenn ich jetzt einen Vector vom Typ Object erstelle und mir von jedem objekt die Werte per Print() ausgeben lasse, bekomme ich für "foo" die korrekte (jedes mal eine andere) Ausgabe, jedoch ist der Inhalt von "zahlen" immer gleich.
Mein Hauptprogramm:
Kann das so überhaupt funktionieren? Wie kann ich es richtig machen. Also Ziel des ganzen ist, dass am Ende die Werte ausgegeben werden, die bei Load() eingefügt werden.
PS: Wie ist hier im Forum eigentlihc das Tag für C++-Quelltext?
ich habe folgendes Problem:
Habe eine Klasse:
Code:
class Object
{
public:
void Load(int f);
std::vector<int> zahlen;
void Print();
int foo;
};
void Object::Load(int f)
{
foo = f;
for(int i = 0; i < 10; i++)
{
zahlen.push_back(n); // n ist eine globale Variable
n++; // dir nur dazu da ist um das Problem zu zeigen
}
}
void Object::Print()
{
printf("foo: %i\n", foo);
for(int i = 0; i < 10; i++)
{
printf("%i\n", zahlen[i]);
}
}
Wenn ich jetzt einen Vector vom Typ Object erstelle und mir von jedem objekt die Werte per Print() ausgeben lasse, bekomme ich für "foo" die korrekte (jedes mal eine andere) Ausgabe, jedoch ist der Inhalt von "zahlen" immer gleich.
Mein Hauptprogramm:
Code:
n = 0;
std::vector<Object> objekte;
Object *object = new Object();
for(int i = 0; i < 10; i++)
{
object->Load(i);
objekte.push_back(*object);
}
for(int i = 0; i < 10; i++)
{
objekte[i].Print();
}
Kann das so überhaupt funktionieren? Wie kann ich es richtig machen. Also Ziel des ganzen ist, dass am Ende die Werte ausgegeben werden, die bei Load() eingefügt werden.
PS: Wie ist hier im Forum eigentlihc das Tag für C++-Quelltext?