Das verwirrende char in C/C++
-
Simon2 schrieb:
Sorry, aber ist das nicht die klassische "Funktionsdeklarationsfalle"?
Nö.
-
Bashar schrieb:
Simon2 schrieb:
Sorry, aber ist das nicht die klassische "Funktionsdeklarationsfalle"?
Nö.
hmmm - der g++ spuckt bei
struct array { int elemente[10]; }; int main() { array quelle(); quelle.elemente[0] = 0; return 0; }
raus:
# g++ delme.cpp delme.cpp: In function 'int main()': delme.cpp:7: error: request for member 'elemente' in 'quelle', which is of non-class type 'array ()()'
Ohne "()" dagegen klappt's wie gewünscht.
... sieht mir doch danach aus....Gruß,
Simon2.
-
Die Falle hast du dir aber absichtlich selbst gebaut. Versuchs mal mit
quelle().elemente[0]
. quelle ist eine Funktion, und soll auch eine Funktion sein.
-
Bashar schrieb:
...und soll auch eine Funktion sein.
AHA!!!
Genau DA lag mein Mißverständnis!!
Ich hatte krümelkackers Sourcecode und dessen Intention falsch verstanden:krümelkacker schrieb:
...
struct array { int elemente[10]; }; array quelle(); void senke(array);
Ich hatte gedacht, es ginge ihm nur darum, eine Variable (namens "
quelle
") zu definieren, die dann als Parameter ansenke
übergeben werden sollte.
Aber es ging ihm wirklich um zwei Funktionen (hätte ich aufgrund des Namens auch sehen können)...
So - damit erscheint auch Anderes noch sinnvoller!Danke,
Simon2.