Поэтому, пока я делал несколько длинных компиляций, я решил пройти общий тест C ++ на ODesk и наткнулся на этот вопрос.
Если я не ошибаюсь, учитывая формулировку (или ее отсутствие), все это может быть правдой.
а.
int Foo() { }
int Foo(int bar) { }
б.
Ну, это return void;
было бы неправильно семантически, но функции, очевидно, могут иметь void
возвращаемые типы.
void Foo() { }
с. Это определение встроенных функций, да.
д. Не вдаваясь в подробности о размещении следующих элементов,
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);
е.
int bar = 5;
int& GetBar()
{
return bar;
}
GetBar() = 6;
грамм.
int bar = 5;
int* GetBar()
{
return &bar;
}
(*GetBar()) = 5;
Я не вижу, где на этот вопрос есть какие-то действительно ложные ответы. Я что-то пропустил?
Излишне говорить, что у меня не хватило времени и все провалилось. Думаю, я плохой программист на C ++. :(