Können set-Methoden auch arrays zurückgeben?
-
Hallo Community!
Ich sitze schon länger an einer Aufgabe:
]class Zufallszahlen
{
private:
int *zahlen;
int anzahl;
public:
Zufallszahlen(int n):anzahl(n)// Konstruktor
{
zahlen=new int[n];
// Mit Zufallszaheln fuellen
for(int i=0;i<n;i++)
{
zahlen[i]=(rand()%n)+1;
}
}
int get_anzahl(){return anzahl;}
int get_zahlen(){return *zahlen;}
};Ich soll eine Funktion Summe schreiben die weder friend noch Elementfunktion ist , ein Klassenobjekt übergeben bekommt und die Summe aller im Objekt gespeicherten Zahlen zurückbekommt.
Dafür brauche ich ja die set_Methode "set_zahlen" in der Klasse die mir ein Array übergibt.
Wie geht denn das??int get_anzahl(){return anzahl;} int get_zahlen(){return *zahlen;}Das gibt ne superlange Fehlermeldung!
-
class Zufallszahlen { private: int *zahlen; int anzahl; public: Zufallszahlen(int n):anzahl(n)// Konstruktor { zahlen=new int[n]; // Mit Zufallszaheln fuellen for(int i=0;i<n;i++) { zahlen[i]=(rand()%n)+1; } } int get_anzahl(){return anzahl;} int get_zahlen(){return *zahlen;} }; int summe(Zufallszahlen& objekt) { int ergebnis; for(int i=0;i<Zufallszahlen.get_anzahl();i++) { // hier fehlt noch was } }
-
Mach lieber:
int get_zahl(std::size_t index) { return zahlen[index]; }Den Zugriff in der unteren Schleife kriegst du dann wohl alleine hin...
-
Danke für den Tipp!
-
Arrays können in C++ nie Rückgabetypen von Funktionen sein.
Falls du das sonst einmal brauchst, kannst du z.B. Zeiger bzw. Iteratoren oder (Const-Referenzen auf) ganze Container zurückgeben. Allerdings ist es oft der bessere Weg, keinen vollständigen Zugriff auf ein Array/einen Container von ausserhalb der Klasse zu gewähren.