mikrocontroller.net

Forum: Compiler & IDEs Wie ein Array aus Objekten anlegen?


Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine Klasse K. Für die Konstruktion eines Objekts dieser Klasse 
sind zwei Parameter erforderlich. Also z.b. K k(param1,param2); Was ist 
aber wenn ich ein Array anlegen möchte? mit K 
k[5]{(param11,param12),(param21,param22)}; geht es nicht. Wie denn dann?

MfG Mark

Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habs gefunden, es geht mit K 
k[2]={K(param11,param12),K(param21,param22)};

MfG Mark

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Worum geht es überhaupt?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es geht um die Syntax in C++, mit der man ein Array aus
Objekten bei der Definition auch gleich initialisieren
kann. Und zwar nicht mit dem Defaultkonstruktor sondern
mit einem speziellen Konstruktor, der ein paar Argumente
nimmt.

Und die Sache ist die: es gibt dafür keine Syntax.

Was man aber machen kann, und das hat der Fragesteller
herausgefunden, man kann die Initialisierung über ein
paar Hilfsobjekte machen, die dann per Copy Konstruktor
in das Array rüberkopiert werden.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
> Es geht um die Syntax in C++, mit der man ein Array aus
> Objekten bei der Definition auch gleich initialisieren
> kann.

Ahhh, das macht Sinn! Nein, das geht natürlich nicht. (Da hab ich auch 
schonmal nen ganzen Tag dran rumgerätselt, wie das ganze Funktionieren 
soll).

Geht das ganze nicht per Constructor initializer list (das mit dem : 
(Doppelpunkt) im Konstruktor der übergeordneten Klasse)?

Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo simon!

Was meinst Du mit "der übergeordneten Klasse"?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.