dynamisch mehrere Instanzen an funktion senden
-
Hallo
Ich bin gerade dabei mich mit c++ zu beschäftigen und habe dabei folgendes problem.Ich habe eine Klasse "cPerson" erstellt
in meiner "main funktion" erstelle ich 4 Instanzen
cPerson Personen[4];diese kann ich dann auch alle normal ansprechen per Personen[0]. usw.
nun möchte ich an eine Funktion alle Instanzen übergeben.
mache ich es einzeln dann funktioniert es, aber alle mit einmal kriege ich nicht in die funktion. Hintergrund ist, dass die anzahl an Personen ja dynamisch sein kann und ich dies dann dynamisch in der funktion verarbeiten will.----- dynamisch klappt nicht ------
funktion(&Personen);void funktion(cPerson *test) bringt einen fehler
---- einzeln klappt ----
funktion(Personen[0]);void funktion(cPerson test)
{
test. ....
}#include "stdafx.h" #include <cstdlib> #include <iostream> #include <string> using namespace std; using namespace System; struct strMensch { string sVorname; string sNachname; int iAlter; float fGewicht; float fGroesse; }; class cPerson { public: cPerson(); void get_Info_Person(); // Methode void set_Vorname_Person(string vorname); void set_Nachname_Person(string nachname); private: strMensch Mensch; }; //der Kontruktor cPerson::cPerson() { Mensch.sVorname = "Max"; Mensch.sNachname = "Mustermann"; Mensch.iAlter = 18; Mensch.fGewicht = 80; Mensch.fGroesse = 185; } //Methode infos zur person anzeigen void cPerson::get_Info_Person() { cout << Mensch.sVorname << endl; } void cPerson::set_Vorname_Person(string vorname) { Mensch.sVorname = vorname; } void cPerson::set_Nachname_Person(string nachname) { Mensch.sNachname = nachname; } class test :public cPerson { private: bool ok; public: test(); void hole_klasse( cPerson *test[]); // hier sollen alle Instanzen an die Funktion übergeben werden }; test::test() { ok = true; } test::hole_klasse(cPerson *person[3]) { person[0].get_Info_Person(); } int main(int argc, char *argv[]) { cPerson Janko[3]; Janko[0].get_Info_Person(); Janko[0].set_Vorname_Person("Janko"); Janko[0].get_Info_Person(); system("PAUSE"); return EXIT_SUCCESS; }
-
Falsches Forum - hier ist C++/CLI, eine .NET Sprache die wenig mit C++ zu tun hat.
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum C++ (auch C++0x und C++11) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Lordzcyber schrieb:
Ich bin gerade dabei mich mit c++ zu beschäftigen...
Ich werde das Gefühl nicht los das du entweder nach einem eher schlechten Buch oder mit einem schlechten Lehrer arbeitest. Wenigstens ist die string-Klasse schon bekannt.
Lordzcyber schrieb:
Ich habe eine Klasse "cPerson" erstellt
Es gibt mehrere Gründe warum ich dir von den c-Präfix abrate (Ebenso wie ich alle anderen Präfixe sein lassen würde, und auch nicht verstehe warum du die Daten in ein struct auslagerst und nicht in der Klasse hällst), aber das ist deine Sache.
Problematischer wiederum ist die Verwendung von C-Arrays, wenn der C++ Standard bessere Alternativen kennt (Die dir auch wesentlich helfen könnten, da zum einen die Anzahl der Einträge abgefragt werden kann, als auch je nach Typ die Anzahl dynamisch geändert werden kann).
Des weiteren würde ich immer die Ausgabe von der Datenhaltung trennen, und wenn einen Streamoperator für die Ausgabe anbieten.