Dlatego podczas długich kompilacji zdecydowałem się na ogólny test C ++ na ODesk i natknąłem się na to pytanie.

Jeśli się nie mylę, biorąc pod uwagę sformułowanie (lub jego brak), wszystkie z nich mogą być prawdziwe.
za.
int Foo() { }
int Foo(int bar) { }
b.
Cóż, return void;byłoby niepoprawne semantycznie, ale funkcje mogą oczywiście mieć voidtypy zwracane.
void Foo() { }
do. To jest definicja funkcji wbudowanych, tak.
re. Bez wchodzenia w szczegółowe informacje na temat rozmieszczenia następujących elementów,
typedef void (*Func)(int);
Func functions[2];
void Foo(int bar) { }
void Bar(int foo) { }
functions[0] = &Foo;
functions[1] = &Bar;
Ponadto zawsze można to zrobić za pomocą lambd i funktorów .
mi.
void Foo(int& bar)
{
++bar;
}
int foobar = 5;
Foo(foobar);
fa.
int bar = 5;
int& GetBar()
{
return bar;
}
GetBar() = 6;
sol.
int bar = 5;
int* GetBar()
{
return &bar;
}
(*GetBar()) = 5;
Nie widzę, gdzie to pytanie ma naprawdę fałszywe odpowiedzi. Czy coś brakuje?
Nie trzeba dodawać, że zabrakło mi czasu i wszystko mi się nie udało. Chyba jestem złym programistą C ++. :(