Jadi, sementara saya telah melakukan beberapa kompilasi panjang saya memutuskan untuk mengambil tes umum C ++ di ODesk dan menemukan pertanyaan ini.
Jika saya tidak salah, dengan kata-kata (atau kekurangannya) semua ini bisa benar.
Sebuah.
int Foo() { }
int Foo(int bar) { }
b.
Yah, return void;
semantik akan salah tetapi fungsi jelas dapat memiliki void
tipe kembali.
void Foo() { }
c. Ini adalah definisi fungsi sebaris, ya.
d. Tanpa banyak detail tentang penempatan elemen-elemen berikut,
typedef void (*Func)(int);
Func functions[2];
void Foo(int bar) { }
void Bar(int foo) { }
functions[0] = &Foo;
functions[1] = &Bar;
Selanjutnya, Anda selalu bisa melakukan ini menggunakan lambdas dan functors .
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;
Saya gagal melihat di mana pertanyaan ini memiliki jawaban yang benar-benar salah . Apakah saya melewatkan sesuatu?
Tak perlu dikatakan saya kehabisan waktu dan gagal semuanya. Saya kira saya seorang programmer C ++ yang buruk. :(