Bazı uzun derlemeler yaparken ODesk C ++ genel testi yapmaya karar verdi ve bu soruya rastladı.
Yanılmıyorsam, ifadeler (veya eksiklikleri) göz önüne alındığında, bunların hepsi doğru olabilir.
a.
int Foo() { }
int Foo(int bar) { }
b. return void;
Anlamsal olarak yanlış olur
, ancak fonksiyonlar açıkçavoid
dönüş türleri olabilir.
void Foo() { }
c.Bu, satır içi işlevlerin tanımıdır, evet.
d. Aşağıdaki öğelerin yerleşimi hakkında çok fazla ayrıntıya girmeden,
typedef void (*Func)(int);
Func functions[2];
void Foo(int bar) { }
void Bar(int foo) { }
functions[0] = &Foo;
functions[1] = &Bar;
Ayrıca, bunu her zaman kullanarak yapabilirsiniz lambdas ve functor .
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;
Bu sorunun nerede olduğunu göremiyorum gerçekte yanlış cevaplara . Bir şey mi kaçırıyorum?
Söylemeye gerek yok, zamanım bitti ve her şeyi başaramadım. Sanırım ben kötü bir C ++ programcısıyım. :(