2017-05-10 5 views
0

Also, dieser verrückte Klugscheißer hat mich auf mein Wissen über Promotion und Conversion getestet. Er fragte diese Frage unter:Durch Verweis in eine Funktion übergeben, ist es eine Werbung?

void foo(int & ri) 
{ 
std::cout << "do something\n"; 
} 

int main() 
{ 
int i = 5; 
foo(i); 
return 0; 
} 

Also sagte ich ihm, es gab keine Konvertierung beteiligt. Aber er sagt, es ist Förderung und es ist etwas beteiligt, um es zu einer Beförderung zu machen. Dann war er beschäftigt und ging.
Jetzt bin ich mit einem brennenden Juckreiz übrig und ich kann keinen Artikel finden, der mir formal hilft, wie der Compiler das manipuliert. Darf ich wissen, warum ist es eine Beförderung?

+0

Ich denke, technisch, 'foo' erfährt Funktion, Zeiger Umwandlung zu funktionieren. –

+0

Was ist keine Promotion –

Antwort

4

Sie rufen eine Funktion auf, die auf int verweist und eine int übergibt. Es gibt keine Typpromotion.

Ich bin sicher, irgendwann wird der Typ, mit dem Sie gesprochen haben, nicht mehr beschäftigt sein. Wenn er dich für den Rest deines Lebens meidet, hat er sich wahrscheinlich geirrt.

+0

In Ordnung, ich werde ihn jagen, danke für die Klarstellungen –

Verwandte Themen