Während ich einige lange Kompilierungen durchgeführt habe, habe ich mich für den allgemeinen C ++ - Test auf ODesk entschieden und bin auf diese Frage gestoßen.
Wenn ich mich nicht irre, könnte angesichts des Wortlauts (oder des Fehlens davon) alles wahr sein.
ein.
int Foo() { }
int Foo(int bar) { }
b.
Nun, return void;
wäre semantisch falsch, aber Funktionen können offensichtlich void
Rückgabetypen haben .
void Foo() { }
c. Dies ist die Definition von Inline-Funktionen, ja.
d. Ohne näher auf die Platzierung der folgenden Elemente einzugehen,
typedef void (*Func)(int);
Func functions[2];
void Foo(int bar) { }
void Bar(int foo) { }
functions[0] = &Foo;
functions[1] = &Bar;
Außerdem können Sie dies immer mit Lambdas und Funktoren tun .
e.
void Foo(int& bar)
{
++bar;
}
int foobar = 5;
Foo(foobar);
f.
int bar = 5;
int& GetBar()
{
return bar;
}
GetBar() = 6;
G.
int bar = 5;
int* GetBar()
{
return &bar;
}
(*GetBar()) = 5;
Ich verstehe nicht, wo diese Frage wirklich falsche Antworten hat. Vermisse ich etwas?
Unnötig zu erwähnen, dass mir die Zeit ausgegangen ist und das Ganze gescheitert ist. Ich denke, ich bin ein schlechter C ++ - Programmierer. :(