Quindi, mentre eseguivo alcune lunghe compilazioni, ho deciso di prendere il test generale C ++ su ODesk e ho trovato questa domanda.
Senonmisbaglio,dataladicitura(olasuamancanza)tuttidiquestipotrebberoessereveri.
a.
intFoo(){}intFoo(intbar){}
b.Bene,returnvoid;
sarebbeerratosemanticamentemalefunzionipossonoovviamenteaverevoid
tipidiritorno.
voidFoo(){}
c.Questaèladefinizionedifunzioniinline,sì.
D.Senzaentrareneldettagliodelposizionamentodeiseguentielementi,
typedefvoid(*Func)(int);Funcfunctions[2];voidFoo(intbar){}voidBar(intfoo){}functions[0]=&Foo;functions[1]=&Bar;
Inoltre,puoisemprefarloutilizzando
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;
Non riesco a vedere dove questa domanda abbia una risposta veramente falsa . Mi manca qualcosa?
Inutile dire che ho finito il tempo e ho fallito il tutto. Credo di essere un programmatore C ++ male. : (