Donc, pendant que je fais de longues compilations, j'ai décidé de passer le test général C ++ sur ODesk et suis tombé sur cette question.
Si je ne me trompe pas, étant donné le libellé (ou son absence), tout cela pourrait être vrai.
une.
int Foo() { }
int Foo(int bar) { }
b.
Eh bien, ce return void;
serait sémantique incorrectement, mais les fonctions peuvent évidemment avoir des void
types de retour.
void Foo() { }
c. C'est la définition des fonctions en ligne, oui.
ré. Sans entrer dans les détails du placement des éléments suivants,
typedef void (*Func)(int);
Func functions[2];
void Foo(int bar) { }
void Bar(int foo) { }
functions[0] = &Foo;
functions[1] = &Bar;
De plus, vous pouvez toujours le faire en utilisant des lambdas et des foncteurs .
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;
Je ne vois pas où cette question a des réponses vraiment fausses . Suis-je en train de manquer quelque chose?
Inutile de dire que j'ai manqué de temps et que j'ai tout échoué. Je suppose que je suis un mauvais programmeur C ++. :(