Тому, хоча я робив кілька тривалих компіляцій, я вирішив пройти загальний тест на C ++ на ODesk і натрапив на це питання.

Якщо я не помиляюся, враховуючи формулювання (або його відсутність), все це може бути правдою.
а.
int Foo() { }
int Foo(int bar) { }
б.
Ну, return void;було б неправильно семантично, але функції, очевидно, можуть мати voidтипи повернення.
void Foo() { }
c. Це визначення вбудованих функцій, так.
г. Не вдаючись до деталей щодо розміщення наступних елементів,
typedef void (*Func)(int);
Func functions[2];
void Foo(int bar) { }
void Bar(int foo) { }
functions[0] = &Foo;
functions[1] = &Bar;
Далі ви завжди могли це зробити, використовуючи лямбда і функтори .
е.
void Foo(int& bar)
{
++bar;
}
int foobar = 5;
Foo(foobar);
f.
int bar = 5;
int& GetBar()
{
return bar;
}
GetBar() = 6;
г.
int bar = 5;
int* GetBar()
{
return &bar;
}
(*GetBar()) = 5;
Я не бачу, де на це питання є справді помилкові відповіді. Я щось пропускаю?
Потрібно сказати, що у мене закінчився час і провалилася вся справа. Я думаю, я поганий програміст на C ++. :(