Referenz auf konstante Zahl übergeben
-
Hallo,
Hier ist mein kurzer Code:
#include<iostream> void test(int& i){ std::cout<<i<<std::endl; } int main(int argc, char**) { // test(2); int i = 2; test(i); }Kann ich den Aufruf von test in einen Einzeiler umwandeln?
Mit der auskommentierten Zeile funktioniert es ja leider nicht.Compiler schrieb:
test.cpp:8:8: error: invalid initialization of non-const reference of type 'int&' from an rvalue of type 'int'
test.cpp:3:6: error: in passing argument 1 of 'void test(int&)'Gruß,
Jens
-
Wie der compiler schon richtig bemerkt hat - handelt es sich bei dem Parameter ja um eine non-const ref. und diese kannst du nicht mit einem Zahlen-Literal initialisieren.
Also einfach ändern in:
#include<iostream> void test(const int& i){ std::cout<<i<<std::endl; } int main(int argc, char**) { test(2); }