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);
    }
    

Anmelden zum Antworten