Array in Konstruktor mit Standardwert?
-
Moin
ist es möglich einem Array im Konstruktor oder überhaupt bei Funktionen einen Standardwert zu geben?void f(int i[2] = {1,2}) ...
-
Hi halo,
meines Wissens kann man einem Array nur null als default-Wert verpassen.
Viele Grüße,
MaBa
-
Überlad die Funktion/Konstruktor doch einfach. Wäre meine Idee.
#include <iostream> void func(); void func(int *a); int main() { func(); // Standardparameter [1, 2] int b[2]; b[0] = 100; b[1] = 20; func(b); // Parameter [100, 20] } void func() { int a[2]; a[0] = 1; a[1] = 2; func(a); // Die "richtige" Funktion mit den Standard-Parametern aufrufen. } void func(int *a) { std::cout << a[0] << ", " << a[1] << std::endl; }
-
Hier noch eine Alternative:
#include <iostream> void func(int *a = NULL); int main() { func(); // Standardparameter int b[2]; b[0] = 100; b[1] = 20; func(b); // Eigener Parameter } void func(int *a) { int b[2]; if (!a) { a = b; a[0] = 1; a[1] = 2; } std::cout << a[0] << ", " << a[1] << std::endl; }Sollte dein Array natürlich nur 2 Elemente haben, so kannst du natürlich auch einfach folgendes machen:
#include <iostream> void func(int a = 1, int b = 2); int main() { func(); // Standardparameter func(100, 20); // Eigener Parameter } void func(int a, int b) { int x[2]; x[0] = a; x[1] = b; std::cout << x[0] << ", " << x[1] << std::endl; }
-
ok schade

aber danke für die antworten
-
Wer arbeitet schon mit rohen Arrays?

Nein, was willst du mit dem Defaultparameter für Arrays genau erreichen? Hast du ein Anwendungsbeispiel?